Work Text:
The sparring mat in Roy’s safehouse gym smelled like sweat and testosterone. Jason had already peeled off his shirt, slick with heat from twenty minutes of back-and-forth blows that were one part combat training, two parts unresolved tension.
He cracked his knuckles. “You’re pulling your punches.”
Roy tilted his head. “I’m humouring your fragile ego.”
Jason snorted, circling. “Please. You’d be on your back in two minutes if you didn’t cheat.”
That was the final poke.
Roy lunged, and Jason met him mid-air, boots skidding against the mat. They grappled, arms tangled, muscles straining, breath harsh between clenched teeth. It wasn’t elegant—it never was with them—but it was fast, mean, and filthy in a way that had nothing to do with violence and everything to do with how long they'd been dancing around each other.
Jason twisted, tried to throw Roy off balance.
Instead, Roy used the momentum, slammed Jason down with a grunt, and drove a knee between his legs—not hard enough to hurt, but hard enough to press right there.
Jason froze, blinking up at him.
Roy leaned in, red hair damp, eyes wicked. “Pinned.”
Jason squirmed. “Cheap shot.”
Roy ground his thigh up between Jason’s legs, making Jason hiss. “Feels expensive from here.”
“You think you're so fucking—”
“You gonna kiss me,” Roy murmured, voice thick, “or just keep grinding on my thigh like a needy little brat?”
Jason’s whole body went still.
Then he surged up, grabbed Roy by the jaw, and crashed their mouths together. Teeth, tongue, heat—Jason kissed like he fought: with purpose, with fury, with an edge of desperation he’d deny later. Roy groaned into it, biting back hard enough to make Jason gasp.
They barely broke contact long enough to get their pants shoved down. Jason flipped them, grinding their hips together as he snarled into Roy’s mouth, “You’re such a cocky bastard.”
“You love it,” Roy panted, dragging nails down Jason’s back.
Jason thrust, hard and filthy, and Roy cursed as their cocks slid together, hot and leaking between them. “I hate you,” Jason muttered.
“Liar,” Roy said, and kissed him again, deep and wet.
Jason reached down, spit slick on his fingers, and fumbled between them. He found Roy already halfway there—legs open, needy, shameless. “Oh,” Jason breathed, pupils blown wide. “You came ready.”
Roy smirked. “You talk so much shit, but you’re the one rutting like a dog.”
Jason shoved two fingers inside him without warning.
Roy’s smirk turned into a gasp, knees tightening around Jason’s hips. “Fuck—Jay—”
Jason leaned down, lips brushing Roy’s ear. “You’re so goddamn tight. Thought about this?”
Roy arched into the stretch, panting. “Since fucking Kory told me you had a praise kink.”
Jason growled, muffling a moan into Roy’s shoulder. “I don’t—shut up—fuck—”
Roy clenched around his fingers. “Make me, Todd.”
Jason didn’t need more prompting. He spat into his palm, slicked himself, and pressed in slow—too slow for Roy’s liking. The bastard rolled his hips and dragged Jason deeper with one sharp jerk of his thighs.
They both cursed at the same time.
“God, you feel—fuck,” Jason hissed, forehead pressed to Roy’s.
“Harder,” Roy said, voice hoarse, “Don’t be gentle.”
Jason laughed—harsh and breathless. “Never.”
He snapped his hips forward, burying himself in one deep thrust that knocked the air from Roy’s lungs. Roy clawed at his shoulders, gasping as Jason found a rhythm—brutal and punishing, skin slapping against sweat-slick skin.
Roy bit his neck. “You gonna whimper for me when you come?”
Jason bit back a moan, driving in harder. “You want me to?”
“Yeah,” Roy gasped, “I want you to fucking lose it.”
Jason angled his hips—just right—and Roy’s eyes rolled back, legs tightening, mouth falling open.
“There,” Jason said, voice low. “Right there, yeah?”
Roy nodded, barely holding himself together. “Shut up and fuck me.”
Jason slammed into him, over and over, until Roy was clawing at the mat, helpless and shaking.
When Roy came, it hit hard—wet heat between them, muscles clenched, breath ragged. Jason followed with a groan, burying his face in Roy’s neck as he spilled deep inside him, shaking, breath caught on Roy’s name.
Silence fell.
Only their gasps filled the room, the sound of aftershocks in their bodies and something dangerously close to emotion in the air.
Jason didn’t move. He stayed pressed to Roy, listening to his heartbeat.
“You okay?” he asked finally, voice rough.
Roy huffed a laugh. “You’re a menace.”
Jason grinned. “You started it.”
Roy’s arms looped lazily around his waist. “And I’ll do it again.”
Jason nuzzled his throat. “Tomorrow. Same mat?”
Roy smiled against his hair. “Same mat. But next time, you get pinned.”
Jason chuckled.
He’d lose on purpose.
They don’t wait until tomorrow.
They make it halfway to the kitchen before Jason throws out a smug comment—something about Roy not lasting five minutes without getting fucked stupid—and suddenly they’re right back on the mat, Jason already halfway stripped and grinning like he owns the damn place.
That is, until Roy sweeps him onto his back and pins him with a knee to the ribs and both wrists locked above his head.
Jason blinks. “You’ve been practising.”
Roy leans in, voice syrup-slick and dangerous. “Told you. Same mat.”
He shifts, grinding down, and Jason’s breath stutters.
“Next time,” Roy murmurs, lips at his ear, “you get pinned.”
Jason squirms, cock hard already, and Roy smiles because fuck, this boy is predictable.
“Still got that smart mouth?” Roy asks.
Jason smirks. “Always.”
Roy chuckles. “Good. I wanna hear you choke on your own voice.”
He strips them both without finesse—ripping Jason’s shirt open down the middle, shoving pants past hips. Jason bucks underneath him, but Roy presses him back down with a hand on his sternum.
“Stay.”
Jason stills.
Roy leans in, lips brushing his jaw. “You’re already being so good. Think you can keep it up, sweetheart?”
Jason shudders, trying to mask it as a scoff. “You calling me pet names now?”
“I call my toys what I want,” Roy says easily. “Especially when they beg like this.”
Jason opens his mouth to argue, but Roy slides a hand down between them and grips him just hard enough to pull a gasp from his throat.
“Oh, you like that,” Roy coos. “God, look at you. Cocky little bastard turns into such a desperate mess the second I put my hands on him.”
Jason bites his lip, eyes fluttering.
Roy pumps him once—slow, twisting just a little at the head—and Jason whimpers.
“That’s it,” Roy whispers. “There’s my good boy.”
Jason makes a wounded sound. “Fuck off—”
“You want me to stop?”
“No,” Jason growls.
Roy licks into his mouth with a bruising kiss. “Didn’t think so.”
He shifts, slicks himself up without fanfare, and slides inside Jason in one slow, ruthless stroke. Jason chokes on a groan, legs instinctively wrapping around his waist.
“God, tight,” Roy gasps. “Every fucking time.”
He starts to move—deep and grinding, letting Jason feel every inch—and sets a brutal rhythm, pinning his wrists to the mat again as Jason arches beneath him.
“You look so good like this,” Roy pants, biting at his throat. “Fucked open, helpless, begging.”
“Not—begging,” Jason grits.
“Oh no?” Roy picks up the pace, hips slamming forward. “Then why are you whimpering, Jay? Why are you dripping down your thighs like a fucked-out little toy?”
Jason whines, and Roy moans at the sound.
“Yeah,” Roy breathes. “That’s what I thought.”
He lets go of Jason’s wrists just long enough to wrap a hand around his throat—gentle but firm, a warning more than a threat. Jason goes still, pupils blown wide.
“Look at me.”
Jason does, lips parted, flushed and glassy-eyed.
“You’re perfect like this,” Roy says, voice low and dark. “So fucking pretty when you’re underneath me. I bet you’d let me do anything, wouldn’t you?”
Jason’s voice cracks: “Yes.”
Roy fucks into him harder.
“Yeah, you would. You act all tough, but the second I get you ope,n you melt. You need this. Need someone to tell you how good you are. Need me to ruin you.”
Jason claws at his shoulders, moaning outright now, his body caught between shame and pleasure and submission.
“Say it,” Roy demands. “Say you’re mine.”
Jason chokes on it.
“Say it.”
“I’m yours,” Jason gasps.
Roy’s hand tightens just enough. “Good fucking boy.”
Jason shatters—spilling between them with a shudder and a breathless cry, back arched, thighs trembling. Roy groans at the way he clenches around him, drags out the aftershocks until Jason is whining, overstimulated and pink in the face.
“Fuck,” Roy breathes, pushing in one last time as he comes hard, deep inside him.
They collapse in a heap, sweat-slick and tangled.
Jason is trembling—just a little. Roy notices and softens instantly, brushing a hand through his hair.
“You okay?” he murmurs.
Jason nods against his shoulder. “Too okay.”
Roy chuckles, pressing a kiss to his temple. “You really like it when I talk shit to you while praising the hell out of you, huh?”
Jason groans, muffled. “Don’t talk about it.”
“Oh no,” Roy grins. “I’m definitely talking about it.”
Jason punches him in the side.
Roy kisses him again anyway.
