Work Text:
Asra laughs, hands sliding roughly into Julian’s hair to pull, and leans down —
Julian gasps and his mouth falls open, soft and slack, but Asra doesn’t kiss him.
The fists curled tight in Julian’s hair hold him in place, his head tipped back for Asra to look him in the eyes. Staring up at him, he thinks Asra looks like something otherworldly: calm and powerful, violet-eyed, his white hair jarring through the dark haze that drifts throughout the building. The smoke smells of herbs that Julian can’t quite place. Maybe that’s what’s making him so dizzy, or maybe it’s the magic, or maybe it’s Asra, or it’s all three.
“You’re greedy, Ilya.” Asra’s voice is a low murmur, honeyed by a teasing smile.
Julian licks his lips. “Yes.” Asra’s grip on his hair gets tighter. Julian winces at the sting of it.
“You’ve wanted this for a long time, haven’t you?”
“Yes,” he confesses, even though Asra already knows.
“Since even before I did.” It’s a statement, not a question, so Julian is silent. He lets go. Julian’s head lolls forward to rest against Asra’s stomach; he still feels Asra’s hands against his scalp, smoothing his hair down.
He swallows, his heart pounding, and ventures, “So you do — You want this, too?” After a second with no response, he lifts his head to gaze up at him, chin resting where his forehead just was, and presses weakly: “Asra?”
Asra tilts his head to the side, thoughtful. He moves his hands to frame Julian’s face and swipes a thumb gently across Julian’s lips. Julian chases it, tries the pad of his thumb with his tongue, takes it into his mouth. Asra hums approvingly. “That’s what I thought,” the magician says.
“Asra,” he whines, his breath hot against Asra’s fingertips, “please, let me.”
“Let you what?”
“What do you mean, ‘let me what?’” he sputters back before noticing Asra’s lips curl fully into a coy smile, and then the humiliation creeps up to flush Julian’s face even darker. The answer rushes out of him, all in one breath: “Let me touch you, for fuck’s sake, if you don’t then it’ll be all I think about for the rest of my life —”
He means it, too, he knows he does. Asra cuts him off, mercifully. “Alright, then,” he says, amusement in his voice. “Touch me.”
Julian moves even quicker than he did when he first offered Asra his ‘help’ — he lifts his hands to Asra’s beltline to unfasten his trousers as fast as he can, rising higher on his knees for a better view, and it nearly knocks Asra off balance. Asra stifles a laugh behind one hand, bracing himself against the wall with the other. When he finally gets Asra free of his belt and untucks him, Julian sits back on his heels, just to take in the sight of him so disheveled.
Asra’s laughter fades as he looks down at him, heavy-lidded. “Well. Go ahead.”
“Don’t get greedy now, Asra,” he responds with a challenging grin. Asra rolls his eyes and nudges him with his knee.
Julian reaches for him again, pulling him closer, his palms fitting perfectly in the curve of Asra’s hipbone. He notices that the cut on his right hand is still bleeding, a streak of crimson smeared across Asra’s flesh where he’s touched it. Julian kisses him there, softly, on the tender stretch of skin just below his stomach.
Asra’s fingers find their way to Julian’s scalp again, and his voice sounds strained as he says, “Ilya.”
He sets to work, gladly, and is pleased (and relieved) to discover that Asra is half-hard already. After a few strokes with his clean hand, Julian holds the base of Asra’s cock and positions himself level with it. He hesitates for a moment, taking in everything he’s feeling — the shared body heat and his own arousal strained against the front of his pants, nearly making him dizzy — before dragging his tongue up the underside of the shaft.
It’s as if Asra had been holding his breath, waiting, because a sigh escapes him as soon as Julian takes the tip of his cock into his mouth. The sound of it makes Julian self-indulgent. He starts off slowly, savors the heady taste of pre-come and the feeling of him thick in his mouth, knowing that Asra’s patience will run out quickly. Asra leans over him, still braced against the wall with one arm, and watches Julian begin to work him over.
As a general rule, Julian approaches sex with the same techniques he employs when practicing medicine (one can’t fiddle around for too long without looking like an incompetent fool). So he swallows Asra deeper, and with each bob of his head he matches it with a pump of his hand, soon picking up a rhythm that he can tell Asra likes. He knows because he can feel him throbbing against his tongue, can hear the swears Asra might not even notice he’s muttering below his breath.
It’s a spectacle, really. This is exactly what Julian has envisioned in some of his most shameful moments, and the reality of it makes the fantasy seem paper-thin and distant now. His senses are overwhelmed and enveloped by nothing but Asra, and he feels like he’s in danger of drowning in it without the slightest bit of relief, so without stopping, he carefully slides his bloodied hand down to reach between his own thighs —
“Don’t,” Asra snaps. He tugs Julian’s head backwards so that Julian pulls off of his cock, opening his eyes to look up at him blearily, and Asra says: “Not until I tell you to.”
“Oh, god,” Julian whimpers, then clears his throat. “Alright. Yes, sir.”
“Yes, Asra,” he corrects him, already guiding him gently back toward his groin. Julian repeats it back to him just so that he can hear Asra say, “Good,” and suddenly Julian feels like he might be falling in love, which is something he feels quite often, but rarely so viscerally as this.
There’s nothing he can do about it right now, though, except to keep sucking him off like his life depended on it (and maybe it does), so that’s what he chooses to do, spurred on by the quiet noises drawn from the back of Asra’s throat every time he twists his wrist and curls his tongue just the right way. He does it over and over, and all Julian can hear is the warm crackle of a candle burning somewhere in the back of the room mingled with the labor of Asra’s breathing, until —
“Ah, stop, Ilya, stop.”
It jolts him back to his senses. He does as he’s told. “Yes, of course, what’s wrong, did I —”
“Hush, nothing’s wrong,” Asra says weakly, and then he lowers down to the floor, joining Julian on his knees. It’s jarring, seeing Asra at eye level again rather than looming over-top of him. Suddenly Julian feels painfully aware of himself, and also full of dread that he might’ve done something awful.
“Are… are you sure?” he asks, wiping his mouth with the back of his wrist, searching Asra’s face.
“Take your clothes off,” is Asra’s non-response.
Julian blinks at him through the fog. “Pardon?”
Asra presses forward and all but crawls into Julian’s lap, grabbing him by the lapels and starting to pull Julian’s shirt off his shoulders. He is incredibly warm, Julian notices, and close enough to kiss, but again, he doesn’t. “Yes, I’m sure. Get the last button for me — there, that’s it. Now let’s get these off of you. Hold still.”
He reaches back to blindly feel around behind him, then (to Julian’s mild horror) picks up the ceremonial dagger he’d discarded earlier on the floor.
“N-now wait just a moment,” Julian stammers as Asra points the knife directly at his crotch, “those have buttons, too,” but the blade is already tearing through the fabric of his trousers and Asra is shimmying them down his hips. Julian is glad they’re already on the floor, because he’s not sure that he’d have been able to stand for this, literally or figuratively, without getting weak at the knees.
Asra cuts straight through his underwear, too. Julian is about to say something like well good thing that’s not my only pair when Asra sits back and shucks off the rest of his own clothes, tossing them off to the side with the knife. He even unties the choker around his neck.
Julian is speechless, then, because here they are, naked together on the floor of a very smoky, very purple magic shop, which is incredible. And beautiful naked Asra is reaching for him again, pulling Julian by the shoulders so that the two of them lie back on the worn old rug, Asra stretching out catlike beneath him. And that’s incredible, too.
Asra places a hand behind Julian’s head so that Julian dips down closer to his face. His heart skips a beat again, because he could swear with the look in Asra’s eyes that he’s finally going to kiss him, but instead the magician’s lips find their way to Julian’s neck.
Julian groans lowly as Asra nips at the skin just below his jaw, miserably aware of their cocks trapped between their bodies, against their stomachs. Asra sucks at Julian’s throat til he feels it blossom into a dull bruise. Julian keens a gentle ah, and his hips roll against Asra’s before he can help it; to his relief, Asra’s move up against his, too. So he does it again. The hand behind Julian’s head trails down his spine, and his nails scratch him just deep enough to make Julian shudder and buck harder into the cavern of Asra’s hips.
He mumbles an apology against Asra’s temple and is met with a laugh, of course, in return. Asra slots one of his legs between Julian’s thighs and grinds it against Julian’s cock, making the doctor swear hoarsely into the crook of Asra’s neck, pleading quietly: “Asra dear, sweetheart, this is — this is lovely but I need — something. More.”
“Do you think sweet-talking me is going to make you come any faster?” Asra whispers back.
When Julian lifts his head to gape at him, Asra is smirking again, gazing at him from under his eyelashes. Julian begins to suspect that this may be Asra’s most dangerous look. He swallows hard and admits, “I was hoping it might, yes.”
That earns him another laugh, raspy and delighted, and Asra says, “Fine.” He pulls Julian down further onto the floor so that they’re facing each other on their sides, Julian’s head resting against Asra’s inner arm. They’re close enough to share breath. “You’re lucky.”
“I know, believe me,” Julian says with a weak smile. Asra’s free hand starts at Julian’s collarbone and travels down his bare chest, brushes over his stomach and the trail of fine hair, downward to curl his fingers loosely around Julian’s cock. Asra doesn’t break eye contact, not even when his grip gets tighter and he starts to stroke. Julian has to bite his lower lip to keep himself from moaning.
He’s got no idea how a handjob can possibly feel this good, and he can only imagine Asra’s magic must have something to do with it. Is it difficult, he half-wonders hazily, to perform a spell and jack someone off at the same time? Either way, he appreciates it, whatever he’s doing. Asra’s pumping him in earnest now and Julian can barely hold still, thrusting forward to chase Asra’s hand every time he pulls it back. Asra murmurs encouragement under his breath as if he were coddling him, “Yes, that’s it, take what you need,” without looking away from Julian’s face.
He barely needs any time at all. It feels like seconds, although Julian hopes, for his own ego’s sake, that it’s longer than that. “Asra, darling,” he begins, his voice breathy and high, “I’m not going to last much longer —”
“Yes, you are,” says Asra, without missing a beat. He pulls his hand away, despite Julian’s whine of protest, and rolls over to lie on his back again. He taps himself on the torso, as if he were calling a pet over to him. “Up.”
Julian props himself up shakily, then climbs over to straddle Asra’s waist, just as he’s told.
This time, both of Asra’s hands are on him, one of them with his thumb and forefinger wrapped tight around the base of Julian’s dick, the other one starting to stroke him again. Julian sits up straight and runs his hands through his hair, panting, barely able to think clearly; he’d beg Asra to release the pressure around his cock and let him finish if he could, but he’s too distracted, so he rolls his hips into Asra’s deft hands and makes the most of what he’s been granted.
“When I let you come,” Asra tells him, as casually as if he were giving him instructions for cooking breakfast, “come on my chest.”
The words take a few seconds to register. “Oh. Oh, my god,” groans Julian, “yes.” And then he remembers: “Yes, Asra.”
Asra’s hands tighten around him and he strokes harder, faster, very obviously trying to push Julian to his limits, and Julian can’t stand it but it’s also all he’s ever wanted. (Well, maybe not all.) Julian leans forward for a better angle, hands splayed across Asra’s ribs, barely able to suppress his moaning, and Asra’s breathing is getting more ragged, too —
“Now. Let me see you.” Asra’s voice is barely above a whisper. The hand wrapped around the base of his cock moves away while the other keeps working at him, and quickly Julian’s eyes flutter closed as orgasm takes over; a broken oh is all he can manage as he feels himself spilling over Asra’s fingers. He slumps forward, gasping for breath, and when he opens his eyes again he sees Asra’s stomach and chest spattered with white. Across his collarbone, up to his throat, all of it Julian.
They can only stare at each other, attempting to steady their breathing.
“That was beautiful,” Asra says quietly, almost meekly, after a moment. “You looked…”
His voice trails off, but that’s all Julian needs to hear. He pushes himself back and drops his head to Asra’s chest, running his hands up Asra’s torso, begins to kiss him clean. Asra’s breath hitches and his muscles go tense, not as if he’s uncomfortable, but as if it tickles. “Ilya.”
Julian hums in acknowledgement, then chases the thin streak of come up Asra’s throat with the tip of his tongue. Asra slides his fingers into his hair again as Julian kisses him hotly on the neck, nearly in the same place as Asra bruised him earlier. Julian feels him shiver in his arms. “Ilya.” Asra lifts his hips and rubs himself insistently against Julian’s thigh.
Without any further instruction needed, Julian moves down to position himself between Asra’s legs. He doesn’t waste any time, like he did earlier; Asra’s been good to him and he needs (needs, with his entire being) to return the favor. Julian gives him quick service with his tongue, circling the head and massaging him just underneath, lapping at the fluid beaded at the tip. Asra is propped up on one elbow, reaching with the other to push Julian’s head down further onto his dick. Julian welcomes it, slackens his jaw to take even more of him, sucks him hard enough as he pulls back that Asra hisses his name a third time.
Julian runs his hands down the back of Asra’s thighs and underneath the swell of his ass, lifting him higher, and Asra arches his lower back, his shoulderblades pressed into the floor. He cants his hips upward and Julian makes a noise of surprise, inhaling sharply as Asra’s cock grazes the back of his throat. It happens again, and then Julian shudders, sighs appreciatively around him even as the contact makes his eyes prick with tears. Asra keeps fucking into his mouth; Julian grips him tighter in a fruitless attempt to accommodate the erratic movement of his hips. This time, it’s Asra who is taking what he needs, and Julian adores it — adores the feeling of being needed like this, even if it’s rubbing his throat and lips raw and red —
Asra comes hard and without warning, his legs thrown over Julian’s shoulders, fingers finding purchase again in Julian’s auburn curls. He pulls him off of his cock just a second too late, making Julian cough and sputter to swallow what catches in his mouth, the rest of it painted across his lower lip and chin.
Asra’s chest heaves as he loosens his grip in Julian’s hair and gingerly lowers down flat on the floor. Julian sits up, too, eyes sweeping him over. Asra looks utterly spent, and Julian is almost proud, but the triumph quickly gives way to worry. Asra’s face is unreadable, even once the aftershocks fade and he’s brought back down to himself, opening his eyes to return Julian’s gaze.
Julian has absolutely no idea what to say, although he wishes he did, terrified by the heavy silence. He lifts both hands to wipe his face clean of the tear stains and — Asra. And then he massages his temples, rubs circles over his eyes, suddenly feeling very, very tired.
He hears Asra move in front of him, and then unexpectedly he’s back in Julian’s field of vision, gently pulling Julian’s hands away from his face. And then Asra leans in close and kisses him on the mouth.
His lips are just as soft and full as Julian has always imagined them to be, and any anxiety that was building in the pit of Julian’s stomach melts away with each time Asra surges forward to kiss him deeper. There’s no roughness in this. Julian is afraid his lower lip might have started to split and bleed from the stress earlier, but Asra doesn’t seem to care or notice. When they break apart he cups Julian’s face in both trembling hands and rests their foreheads together, brushing his thumbs in soothing lines across Julian’s cheekbones.
Asra is first to break the silence. “I suppose you’ll want these back eventually.” He leans away to reach for Julian’s pants and underwear. Julian is too exhausted to protest the loss of contact. Asra inspects the cuts in the fabric, then sits cross-legged and begins to run his hands over it in his lap. Julian watches it start to weave back together thread-for-thread, fascinated.
“I should have known you could do that,” he remarks. His voice sounds embarrassingly scratchy. Asra glances up at him, smiling with his eyes, then back down at his handiwork. In another second, he’s finished, and he tosses the clothes to Julian.
Julian tries the fabric with his fingers. It’s not only well-mended, but appears as if it had never been torn in the first place. When he looks back up at Asra, the magician has started to get dressed again. “Thank you,” he says, impressed. “But you wouldn’t have had to do that if you’d taken them off the normal way. Just a thought.”
“Mm. The look on your face was worth it.”
It probably was. That reminds him: “By the way. What was that … thing you did earlier? With your hands?” He makes a vague gesture as if he were conjuring something or charming a snake. Asra tilts his head quizzically. “You magicked something there, in the middle of it all, didn’t you?”
“No.”
Julian’s face begins to feel hot again. “Oh. Well then,” is all he can manage in response.
Asra quirks a brow as he pulls his arm through the shirtsleeve. “So it was that good?”
“Yes. I mean,” he rushes to add, “I thought so. Unless you disagree. In which case, I’m terribly —”
Asra, now wearing a shirt and choker but having seemingly forgotten about pants, takes his jaw between two fingers and looks at him very seriously. It shuts Julian right up. “Don’t be ridiculous,” Asra says. He kisses him again, just once. Then: “Your voice sounds awful. Let me make you some tea.”
Julian starts to tell him not to worry about it, that he'll do it himself, but the look on Asra's face quickly convinces him not to try. “Um. That would be nice,” he says instead, reveling once again in how lucky he’s gotten.
When Asra gets up to walk into the other room to put the kettle on, Julian finally notices that Asra is wearing his shirt — the white button-down, so large on him that it’s sliding off of one shoulder, the hem of it just reaching his thighs — and Julian knows it’s not by mistake.