The hinges groaned as the front door swung wide. Nate filled the frame, shoulders broad enough to scrape both sides. Sweat glistened on his collarbone where his tank top sagged low. He kicked muddy boots off without looking down.
Tommy froze mid-click. His knuckles whitened around the mouse. The browser still showed two shirtless men tangled in sweat-slicked wrestling. He slammed the laptop shut. Too late.
Nate’s laugh scraped like gravel. “Still jerking off to dudes, huh?” He dropped his gym bag. It thudded against the hardwood.
Tommy’s throat tightened. He stared at the closed laptop lid like it could swallow him whole. Nate’s shadow fell across the desk. Close. Too close. The scent of cheap aftershave and stale gym clothes choked the air.
A calloused hand gripped Tommy’s shoulder. Fingers dug into muscle. Nate leaned down. His breath hit Tommy’s ear. Hot. Wet. “Relax. I won’t tell.”
Tommy flinched. His pulse hammered against Nate’s palm. The silence screamed louder than any insult. Nate’s thumb rubbed slow circles through Tommy’s thin t-shirt. Rough. Deliberate.
The touch burned. Tommy’s breath hitched. His jeans felt suddenly tight. Dangerous. He didn’t pull away. Couldn’t. Nate’s chuckle vibrated against his spine. Low. Knowing.
“Knew you liked it,” Nate murmured. His other hand slid down Tommy’s arm. Fingertips traced trembling skin. Tommy’s eyes squeezed shut. Heat pooled low in his belly. Shameful. Electric.
Nate’s lips brushed his neck. Just once. Hard. “Bet you’re hard right now.”
Tommy shuddered. Yes. God, yes. The admission stayed trapped behind clenched teeth. Nate’s teeth scraped his pulse point. Sharp. Claiming. Tommy arched into it. A whimper escaped.
The laptop clattered to the floor. Nate shoved Tommy backward onto the desk. Papers scattered. Pens rolled. Nate’s knee forced Tommy’s thighs apart. Hands pinned his wrists above his head.
“Show me,” Nate growled. His hips ground down. Denim scraped denim. Hard. Insistent. Tommy’s head thumped against wood. He gasped. Nate’s mouth crashed onto his. Bruising. Possessive.
No finesse. Just teeth and tongue and the salt-tang of sweat. Tommy moaned into it. His hips bucked. Nate’s hand slid between them. Rough fingers fumbled with Tommy’s zipper. Metal teeth screeched.
Cool air hit bare skin. Nate’s palm pressed flat against Tommy’s erection through thin cotton. He groaned. Loud. Ragged. Nate’s thumb rubbed slow circles over the damp spot. Precum soaked through.
“Pathetic,” Nate breathed against his mouth. But his own hips jerked forward. Hard. Needy. The bulge in his jeans pressed hot against Tommy’s thigh. Tommy’s back arched. Begging. Silent.
Nate’s fingers hooked into Tommy’s waistband. Yanked. Fabric tore. Tommy cried out. Nate’s mouth silenced him again. Deeper this time. Hungrier. Tommy’s hands twisted free. Clawed at Nate’s back.
Muscle flexed beneath his fingers. Solid. Unyielding. Nate’s hand shoved Tommy’s briefs down. Cool air kissed bare skin. Then heat. Nate’s calloused palm wrapped around him. Tight. Rough.
Tommy’s hips jerked off the desk. A strangled gasp tore loose. Nate squeezed. Hard. Tommy’s vision blurred. Stars exploded behind his eyelids. Nate’s thumb swiped over the leaking tip. Slick.
“Like that?” Nate’s voice rasped in his ear. Hot. Taunting. Tommy nodded frantically. Words died in his throat. Nate’s grip tightened. Stroked. Up. Down. Too fast. Too rough. Perfect.
Tommy’s nails dug into Nate’s shoulders. Blood pounded in his ears. Louder than Nate’s ragged breaths. Louder than the creak of the old desk beneath them. His thighs trembled. Close. So close.
Nate’s teeth sank into Tommy’s shoulder. Sharp. Punishing. Tommy cried out. His back bowed. White heat tore through him. Wetness spilled hot over Nate’s fist. Again. Again. Spasms wracked him. Nate didn’t stop. Stroked him through it. Relentless. Possessive. Tommy gasped Nate’s name. Raw. Broken.
The hand released him. Sticky. Wet. Nate wiped his palm on Tommy’s thigh. Slow. Deliberate. Tommy shuddered. Weak. Trembling. Nate leaned close. His breath scalded Tommy’s ear. "My turn." Rough fingers hooked into Nate’s own jeans. Button popped. Zipper snarled down.
Tommy’s gaze dropped. Thick. Veined. Angry red. Leaking. Nate gripped himself. Stroked once. Twice. A low groan ripped from his throat. Eyes locked on Tommy’s swollen mouth. "Open." Command. Not request. Tommy obeyed. Lips parted. Tongue touched dry lips.
Nate’s free hand fisted in Tommy’s hair. Yanked. Hard. Tommy choked. Nate shoved forward. Filled his mouth. Stretched his jaw. Salt. Musk. Heat. Tommy gagged. Tears blurred his vision. Nate thrust deeper. Hilted. Tommy’s throat convulsed. Nate groaned. Rough. Guttural. "Suck." The order vibrated against Tommy’s palate. He hollowed his cheeks. Tongue pressed thick veins. Nate’s hips snapped. Brutal. Unforgiving. Tommy’s nose crushed against coarse hair. Breath burned hot in his lungs.
Hands pinned Tommy’s head. No escape. Nate fucked his mouth. Relentless. Teeth scraped sensitive flesh. Tommy whimpered. Nate growled. "Take it." Each thrust punched deeper. Tommy’s throat opened. Swallowed. Wet. Obedient. Nate’s fingers tightened. Scalp screamed. Tears tracked hot down Tommy’s cheeks. Saliva dripped. Messy. Degrading. Perfect. Nate’s breath hitched. Faster. Harder. Tommy tasted salt. Iron. Need.
Nate’s back arched. A raw shout tore loose. Hot pulses flooded Tommy’s throat. Thick. Bitter. Endless. Tommy swallowed convulsively. Gagged. Swallowed again. Nate shuddered. Held deep. Grinding. Tommy’s lungs screamed. Black spots danced. Nate finally pulled back. Slick. Glistening. Tommy gasped. Air scraped raw. Chest heaved. Nate wiped himself on Tommy’s cheek. Slow. Possessive. Tommy flinched. Didn’t pull away.
Silence crashed. Heavy. Panting. Nate stepped back. Zipped. Buttoned. Tommy slumped. Boneless. Spent. Come cooled sticky on his stomach. Thighs. Jaw ached. Nate surveyed him. Disheveled. Ruined. A smirk curled Nate’s lips. "Still pathetic." He grabbed his gym bag. Turned. Boots thudded toward the door. Stopped. Glanced back. "Clean yourself up." The door slammed. Alone. Tommy trembled. The scent of sex. Shame. Nate’s musk. Thick in the air. His fingers touched swollen lips. Bruised. Used. He shuddered. Hard again. Already.