The waves outside kept their slow, steady rhythm, but inside the small room everything felt dangerously still. Matteo’s chest was pressed to my back, rising and falling in heavy, uneven breaths that brushed hot against the nape of my neck. His thick arm lay across my waist like it belonged there, bicep flexed and warm, fingers splayed over my stomach. Every inch of him was solid; abs tight against my spine, thighs tangled with mine, and lower, unmistakable now, the hard line of his cock nestled firmly between the curve of my ass.
I couldn’t move. I didn’t want to move. My own erection throbbed painfully against the front of my shorts, trapped and aching, every heartbeat making it worse. The thin fabric between us was the only thing keeping this from being completely irreversible, and even that felt like a cruel joke.
Matteo shifted…just a fraction…like he was trying to get comfortable. The movement dragged his cock along my ass in a slow, deliberate slide. A quiet, involuntary sound escaped my throat. He froze for a second, breath catching, then did it again. Slower this time. Testing. The pressure was perfect, hot and heavy, and my hips answered before my brain could stop them, pushing back into him.
“Fuck,” he whispered, the word ragged against my skin. His hand tightened on my stomach, fingers digging in just enough to make me shiver. Another roll of his hips, deeper now, grinding with intent. The friction sent sparks up my spine; my cock leaked against the cotton, a damp spot spreading.
We found a rhythm without speaking…slow, filthy circles that made the bed creak softly beneath us. His breathing turned rough, almost laughing, like he couldn’t believe what his body was doing. “What the fuck are we doing?” he murmured, voice low and breathless, a shaky laugh vibrating through his chest into mine. But he didn’t stop. If anything, he pressed harder, grinding his cock against my ass in a long, dragging thrust that made my toes curl.
I could feel every inch of him…thick, pulsing, growing impossibly harder with each roll. The heat of him soaked through our shorts. His thigh slid higher between mine, forcing my legs apart just enough to give him better angle, and I bit down on my lip to keep from moaning out loud.
He laughed again, quieter this time, the sound ragged and overwhelmed. “Adrian…” My name came out like a confession, hips snapping forward once, sharp and needy, before he caught himself. His forehead dropped to the curve of my shoulder, breath coming in harsh pants. He was desperate now…still hesitant, still Matteo but his body had taken over, grinding against me like he couldn’t get close enough.
The pressure built low in my stomach, coiling tight and unbearable. I was shaking with it, every nerve screaming for more. My hand clenched in the sheet, knuckles white. I couldn’t think. I couldn’t breathe properly. All I could feel was his hard cock, hot, moving against my butt like he needed this as badly as I did.
And then, before I could stop myself, the words tumbled out, rough and too honest.
“I can help you out, you know?” My voice cracked in the dark. “If you want.”
The grinding stopped instantly. The room went dead silent except for our breathing…mine frantic, his stunned. My heart slammed against my ribs so hard I was sure he could feel it through my back.
What the hell did I just say?
Panic flooded me, cold and sharp. He’s straight. This is my best friend. I just offered to jerk him off like it’s nothing. He’s going to pull away, laugh it off, pretend this never happened. Everything is ruined. Everything—
Matteo’s hand flexed against my stomach. He didn’t move away. Instead, his hips gave one slow, deliberate press forward, like he couldn’t help it. A shaky exhale ghosted over my neck.
The words were still hanging in the air between us and my entire body was screaming at me to take them back.
I rolled over slowly, careful not to break the contact, until we were face to face in the faint moonlight slipping through the window. His eyes were wide, dark, pupils blown. A flush rode high on his cheeks, curls messy against the pillow, lips parted like he was still catching his breath. He looked wrecked already, and I hadn’t even really touched him yet.
My heart was hammering so hard I was sure he could hear it. I thought, I said it. Now I might as well go with it.
I swallowed, voice low. “Well, you’re clearly hard as fuck and need a release.”
Matteo let out a breathless laugh, the sound shaky and surprised. “Shit, fuck, man… are you serious?”
“Yeah,” I said, trying to keep my tone light even though my throat felt tight. “I mean… we’re boyfriends, aren’t we? That’s the least I can do.”
He stared at me for a second, then huffed another laugh, rubbing a hand over his face. “But… isn’t it kinda weird?”
I shrugged, the movement brushing our chests together. “Jerking off your boyfriend is literally the least weird thing we can do tonight.”
He laughed again, softer this time, the tension in his shoulders easing just a fraction. He looked at me and something shifted in his expression. A small, crooked smile tugged at his mouth.
“Fuck,” he muttered. “Fuck it. I’m so fucking horny.”
Before I could process the words, he hooked his thumbs into the waistband of his shorts and trunks and pushed them down in one smooth motion. They slid over his hips, down his thighs, and his cock sprang free, slapping lightly against his abs.
Moonlight painted him in silver and shadow. Thick, long…easily eight inches…straight and heavy, curving just slightly upward. The shaft was smooth, flushed deep, with a prominent vein running along the underside that pulsed visibly. The head was broad, glistening already, a bead of precum catching the light like a jewel. His balls hung full and heavy beneath, drawn up tight with need.
He kicked the shorts off completely and lay back against the pillow, one arm behind his head, the other resting on his abs. His cock stood proud against his stomach, twitching once as the cool air hit it.
I couldn’t breathe for a second.
“Can I?” I asked, voice rough.
He smiled, lazy and nervous all at once. “Might as well, babe.”
I shifted closer, the mattress dipping under my weight. My hand trembled as I reached out, fingers brushing the inside of his thigh first. He inhaled sharply. Then I wrapped my hand around his cock slowly.
He was burning hot. My fingers barely met around his girth, and the second I made contact he throbbed hard in my grip, another bead of precum pushing out.
“Jesus,” he breathed, hips lifting slightly into my touch.
He nodded fast, guiding my hand with his own for a second…tentative, like he was showing me the rhythm he liked. His fingers overlapped mine briefly, warm and a little shaky, pressing me into a slow, firm pump from base to tip. Then he let go, resting his hand beside me on the sheet, knuckles brushing my thigh as if he needed the anchor.
I started slow, long strokes from base to tip, twisting gently over the head on every upstroke. His cock swelled even harder in my hand, veins standing out under my fingers, pulsing with every heartbeat. Precum slicked my palm, making the glide smoother, wetter. The head flushed darker under my thumb, sensitive and swollen, and I circled it lightly, spreading the bead across the slit until it glistened in the moonlight.
“Fuck, that feels good,” he muttered, voice low and wrecked. “First time anyone’s touched me since Jessica.”
I smiled, even though my own cock was aching painfully against my shorts. Internally I was a mess…rock hard, leaking, desperate but I kept my focus on him. On the way his abs tensed with every stroke, the way his thighs flexed, the quiet gasps he tried to swallow.
He got louder the faster I went, hips starting to roll up into my fist. “Urgh, fuck… yes… grab my balls.”
I didn’t hesitate. My free hand cupped him gently, rolling his heavy sac in my palm, feeling how tight and full they were. They were a little cold, drawn up close to his body, the skin soft and slightly textured under my fingers. I massaged them slowly, tugging just enough to make him hiss through his teeth, his cock jumping in my other hand as if connected by a wire. He spread his legs a little wider, giving me better access, and I took it…kneading deeper, rolling them between my fingers while my grip on his shaft tightened, pumping steady and unhurried.
“Fuckkk, yeah… like that,” he breathed, his voice cracking on the edge of a laugh, like he couldn’t believe he was saying it out loud. His hand on my shoulder squeezed harder, nails biting into my skin, and I could feel the tremor running through him. I kept the rhythm dual now; one hand cradling his balls, thumb pressing lightly into the sensitive spot behind them, the other sliding up and down his dick with increasing wetness. More precum welled up, thick and clear, and I swiped my thumb over the tip again, smearing it in slow circles around the ridge of the head. It made everything wetter, the sound obscene in the quiet room; a soft, rhythmic schlick that mixed with his ragged breaths.
Matteo’s hips stuttered, bucking up into my fist as I twisted over the crown, spreading the precum down the shaft in long, deliberate drags. His balls tightened further in my palm, heavy and pulsing, and I rolled them firmer, feeling them shift and draw even closer. “Shit… Adrian, you’re doing so fucking good” he groaned, half-laughing, half-moaning, his free hand fisting the sheet like he needed something to hold onto. Sweat beaded on his chest, catching the moonlight, and his abs clenched visibly with every stroke, the ridges deepening under the strain. I slowed for a second, just to tease…long, lazy pulls that let me trace every vein, feeling them throb hot against my skin…then picked up again, faster, my thumb flicking insistently over the slit to coax out another spill of precum. It dripped down, coating my fingers, making the glide impossibly smooth, and he let out a broken sound, low and needy, his thighs quivering on either side of me.
“Don’t stop,” he whispered, voice breaking. His hand found my shoulder, clutching hard, fingers digging in as his hips bucked faster. I could feel him teetering, the tension coiling in his body like a spring ... .his cock so rigid now it felt like it might snap, veins bulging under my grip, the head dripping with precum and flushed an angry red. My hand on his balls squeezed gently, rolling them in time with my strokes, tugging just enough to pull a gasp from him, his whole frame shuddering.
I sped up, grip firm, twisting just right over the sensitive head. His cock throbbed wildly now, slick and hot, leaking steadily.
“Fuck… fuck, Adrian… I’m gonna—”
His whole body tensed, back arching off the bed. “Dude… fuck… I’m coming—”
The first spurt hit his abs hard, thick and white in the moonlight spilling through the window. Then another, shooting higher, splattering across his chest. More followed, pulsing over my fingers, dripping down my hand, coating my grip in warm, sticky release. I kept stroking him through it, slower now, milking every last shudder until he collapsed back, chest heaving.
“Shit, fuck,” he laughed breathlessly, eyes closed. “I’m sorry, it’s… everywhere.”
I finally let go, my hand dripping in his cum and messy. Cum pooled between my fingers, streaked across his abs, glistening on his skin. I laughed too, soft and shaky. “It’s fine.”
He opened his eyes, looked down at the mess, then at my hand. “Lemme help you out too. I mean… if you’re hard.”
My stomach flipped. I was hard as fuck…throbbing, wet, desperate. The man I’d crushed on for years had just come in my hand. Why wouldn’t I be? But I couldn’t let him see how much this meant. Not yet.
“Nah, nah,” I said quickly, sitting up. “I’m just gonna clean this and get back into bed.”
He propped himself on an elbow, still flushed and glowing. “You sure? I seriously don’t mind helping you out. Seriously.”
I stood, laughing it off even as my legs felt unsteady. “Nah, Romano. Thanks. Maybe I’ll redeem that offer another time.”
He grinned, wiping at his abs with the edge of the sheet. “Sure thing.”
I slipped into the bathroom, closing the door softly behind me. The light was harsh after the moonlight, and I stared at my hand…his cum still warm, thick ropes between my fingers, pooling in my palm.
The whole scene replayed in flashes: his cock thick and throbbing in my grip, the way his hips had bucked desperately into my fist, the broken, breathless sound of my name spilling from his lips as he came undone.
I was so hard it hurt, cock straining against my shorts, leaking steadily like it knew exactly what it had missed.
In the harsh bathroom light I lifted my hand closer to my face, almost trance-like. His cum was still warm, thick ropes coating my fingers, pooling in the creases of my palm, slowly cooling but still wet. The scent hit me hard: musky, sharp, unmistakably Matteo. Salty skin and heat and something deeper, rawer, that made my mouth water without permission.
I stared at it, heart pounding in my throat. One small tilt and I could drag my tongue through it, taste him for the first time, feel that warmth slide over my lips, swallow the proof that I’d made him lose control. The thought alone sent a fresh pulse of blood south, my cock twitching hard enough to make me bite back a groan. I imagined the salt-bitter flavor, the texture of his cum coating my tongue, the filthy intimacy of licking my best friend’s load straight from my own skin.
My breath came shallow. I brought my hand closer….close enough that I could feel the faint heat against my lips.
Then reality slammed back in.
I laughed quietly at myself in the mirror, shaky and disbelieving, cheeks burning hotter than before. What the fuck was I doing? I turned on the faucet fast, almost frantically, and shoved my hand under the cold stream. Water rushed over my skin, swirling white streaks down the drain, washing him away in slow, reluctant spirals.
I watched it disappear, every last trace of him gone.
I dried my hands roughly on the towel, looked up at my reflection: flushed cheeks, wild eyes, a stupid, helpless smile I couldn’t wipe off no matter how hard I tried.
I shook my head, turned off the light, and slipped back into the dark room, heart still racing, cock still aching, carrying the ghost of his taste I’d never actually taken.
Matteo was already half asleep, shorts pulled back up, breathing slow and even. Moonlight still painted the faint sheen on his abs where he hadn’t wiped everything away.
I climbed in beside him, careful not to touch.
The space between us felt different now.
Charged.
Real.
And completely, terrifyingly irreversible.
I lay there in the dark, cock still aching, heart still racing, staring at the ceiling until the waves outside finally pulled me under.
If you enjoyed this story, consider supporting the author on Patreon.