A Short Erotic Story from Rowan Thornwell
Eli thought he was chasing the light.
Until the man in the shadows stepped into focus.
Golden. Dangerous. And made to be watched.
The city was cooling beneath him.
Eli leaned against the chipped ledge, his camera bag forgotten at his feet, the sun melting down behind brutalist rooftops. Copper and bruised lavender streaked across the sky, and every chimney, every antenna, every window seemed to hold its breath.
He’d come up here for the view. The guidebook had said secret roof, and he’d followed the spiralling stairwell past a rusted maintenance sign, pushed a door that clicked shut behind him... and didn’t open again.
Locked.
But it didn’t scare him. Not really. The air was warm on his skin. The stone still held the day's heat. And the thrill of being suspended above the city with no clear way down was more delicious than dangerous.
He hadn’t even noticed the other presence at first.
Not until the cigarette sparked in the shadows.
Not until that deep voice said, “You like to be above it all.”
Eli turned.
The man stood half in shadow, bare-chested beneath an unfastened shirt, loose pants slung low on his hips. His jaw was dusted with stubble. His hair wild like it had been raked back by impatient hands. Or wind. Or both.
“I didn’t hear you come up,” Eli said. His voice sounded smaller than usual. Breathy.
The man stepped closer, just enough for the light to kiss the edge of his collarbone.
“I didn’t come up,” he said. “I was already here.”
There was something in the way he looked. Like he was choosing which part of Eli to admire first. Or unwrap.
Eli swallowed. “Are we locked in?”
A pause. A twitch of lips. “Mmm.”
“You don’t sound worried.”
“Should I be?” the man asked. “You don’t look like you’re in a rush to leave.”
He was right.
Eli was rooted. A strange weightlessness inside him, like gravity had shifted, like the rooftop tilted toward the man.
“I’m Leo,” he offered, at last.
Eli gave his name back, though his tongue felt thick. As if saying it cost something.
“I’ve seen you before,” Leo said. “Three buildings over. That little balcony. Always with a camera.”
Eli’s breath caught. “You were watching?”
“Just once,” Leo murmured. “Maybe twice.”
“And tonight?”
Leo smiled, slow as syrup. “Tonight, you came to me.”
The wind moved then. Or maybe Leo did. Hard to tell. But Eli’s skin rose in gooseflesh, his nerves curling in the most dangerous kind of anticipation.
And below, the city roared and dimmed.
Up here, only the sky watched.
There was no hiding, not from this kind of light.
It slanted gold now, falling in long, lazy shafts between crumbling chimneys and rooftop garden wire. It caught the edge of Leo’s wrist as he stepped forward, flickered over his cheekbone, then vanished down the arch of his throat.
Eli could feel himself watching too hard.
Could feel it in the quiet ache low in his belly, the twitch in his fingertips, the way his knees wanted to shift apart without him quite meaning to.
Leo noticed.
“You always stare like that?” he asked softly.
Eli’s breath fluttered. “Only when it’s worth staring at.”
Leo let out a breath that wasn’t quite a laugh. He tilted his head, eyes narrowing just slightly, like he was adjusting a lens of his own.
“You don’t look like the type who plays games,” Leo said.
“I don’t,” Eli replied.
“Then tell me why you haven’t moved.”
Eli swallowed. His mouth felt dry. “Because I don’t know what happens if I do.”
Leo took two more steps. Close now. Not touching, not quite, but the heat of him rolled forward in waves.
And Eli saw.
The way Leo’s pupils dilated. The slow drag of his tongue across his lower lip. The slack in his hands that suggested control, or the exact opposite of it.
“Maybe I’m the one who should be worried,” Eli whispered.
Leo’s gaze swept down, then up again. His voice was velvet wrapped in smoke.
“No,” he said. “You came up here already wanting something.”
The street below coughed with laughter. Someone yelled. A dog barked. A motorcycle shrieked around a corner.
But up here…
Silence. Stretching. Taut as thread.
“Let me guess,” Leo said. “You were chasing the light.”
Eli gave a shaky nod.
“And now it’s chasing you.”
Leo’s hand lifted, slow as dusk, to trace the air beside Eli’s throat. Not touching. Not yet. Just letting the electricity build in the gap between them.
“I want to photograph you,” Eli breathed.
Leo’s eyebrow lifted. “That so?”
“You look like you want to be seen.”
Leo smiled again. But this time there was something meaner behind it. Something hungry.
“I don’t care about being seen,” he said. “I care about being watched.”
His fingers dropped to Eli’s wrist. Not holding. Just there. Heavy. Real.
“And I think you care about being caught.”
Eli could barely think. The city was humming now. Or maybe it was just the blood in his ears.
One more step and they’d be touching.
One more word and he might fall.
It was the way Leo said nothing next.
That pause. That stretch of tension where time slowed down and the city lost all sense of rhythm. The only heartbeat Eli could feel was his own, hard in his throat.
And then, he moved.
Leo closed the last inch between them like it meant nothing. Like there hadn’t been a war of glances and breath waged just to earn it. His body was heat and scent and skin, all golden from the sun’s last light, and he didn’t touch Eli outright, he just pressed close enough that their chests shared the same air.
Eli could taste it, whatever this was.
“Let me see the camera,” Leo murmured.
Eli’s fingers obeyed before his mind caught up. He passed it over, chest rising faster now. Leo turned it in his hand, studying the worn leather grip, the lens cap still dangling.
“Film?” he asked.
Eli nodded. “Always.”
Leo’s mouth curled at the edge, something ancient and knowing in his expression. “You like things that can’t be undone.”
Eli flushed.
“I like… truth.”
Leo tilted the camera, raised it in one smooth motion, and aimed it straight at Eli’s face.
“Then don’t look away,” he said.
The shutter clicked.
And with it, something inside Eli did too.
He held still. Let himself be captured. Framed. Undone by the dark glass eye.
“You photograph strangers?” Leo asked, voice low.
“Sometimes.”
“You ever want to touch them, after?”
Eli licked his lips. “Sometimes.”
Leo lowered the camera. “You want to touch me now?”
Silence.
The kind that stripped everything bare.
Eli reached out.
His hand met Leo’s stomach, just above the waistband of those loose pants, and the skin was hot, smooth, muscle coiled beneath.
Leo didn’t flinch. He leaned into it, letting the touch linger.
“You’re not shy,” Leo said, not a question.
Eli shook his head. “I just like to wait until I’m sure.”
Leo stepped in closer. Until his thigh nudged between Eli’s, until their bodies were a single breath from pressing flush.
“And now you’re sure?”
“Yes.”
Leo’s mouth dipped closer to his ear.
“Good.”
One word, a spark dropped into dry grass.
Eli’s pulse kicked. His knees wavered. He could feel Leo’s breath on his neck now, and further down, the soft brush of linen against denim, promise against want.
Below them, the city roared.
But up here, the night had just begun to smoulder.
The first touch was deliberate.
Not chance. Not accident.
Leo's knuckles grazed Eli’s jaw as he brushed a loose strand of windblown hair back behind his ear. His fingers lingered, not long, just long enough to leave a ghost.
Eli didn’t move. Couldn't.
The air was different now. Denser. A shimmer just beneath the skin.
“Your pulse is right here,” Leo said, pressing a fingertip to the side of Eli’s throat. “Fast.”
Eli inhaled, sharp and shallow. “Yours too.”
Leo smiled, eyes lidded. “Good.”
Below them, car horns tangled with footsteps and faint laughter. Life moved on, unaware. Or not.
Eli’s back met the ledge, the old stone rough against his shoulder blades. Leo leaned in, one hand braced beside Eli’s head, the other drifting low... hovering near his hip, never quite settling.
“You ever wonder,” Leo murmured, “how many windows are looking this way?”
Eli’s breath caught.
He had. Every time he’d photographed rooftops or balconies, he’d imagined the watchers. Imagined who might be behind glass, blinds parted just enough.
And now—he was the one being seen.
Maybe.
Maybe not.
Either way, the possibility made his skin feel thin, as if the night wind could see straight through it.
“You’re trembling,” Leo said.
“I’m not afraid.”
“I know,” Leo replied. “That’s why it’s so fucking beautiful.”
Then his fingers did touch.
The edge of Eli’s shirt, lifting the hem. His knuckles dragged over skin, bare and tight with anticipation, until they found the waistband beneath.
Eli’s stomach twitched.
Still, Leo waited.
Only his eyes asked the next question.
Eli nodded, once. The kind of yes that starts deep in the spine and echoes out.
That was all Leo needed.
His palm slid beneath the shirt, spreading across Eli’s lower back, pulling him forward, into heat, into friction.
Their hips met.
It was nothing and everything. A clothed press of want. A slow burn along the seam of tension. Eli’s hands gripped the ledge behind him, needing to ground himself against the rush.
Leo’s breath fanned across his cheek. He didn’t kiss him. Not yet. He hovered, cruel and precise, letting that ache grow louder than reason.
“You’re not going to forget this,” Leo whispered.
“I’m not trying to,” Eli managed, eyes fluttering.
Leo chuckled, dark and low. “Good.”
Then his lips brushed the shell of Eli’s ear.
Just that.
A whisper of contact.
But Eli gasped like it was a knife drawn down his spine.
He arched.
And Leo leaned in closer.
There are touches that ask.
Touches that tease.
And then there are touches that command.
Leo’s hand flattened against Eli’s lower back, pulling him in with a surety that made everything else feel optional, air, thought, resistance. Their bodies met again, firmer this time, and Eli exhaled like he’d been holding that breath his whole life.
Still, Leo didn’t kiss him.
Not yet.
It was worse this way. Better.
Eli’s eyes flicked to the ledge behind them. He imagined a telescope angled this way from the apartment across the street. Curtains drawn just enough to see. A stranger’s breath catching on glass. The possibility of being witnessed didn’t deter him.
It lit him up.
“Tell me,” Leo said, voice a rasp, “what part of you wants to be seen.”
Eli blinked. “What?”
“You came up here knowing it might happen. Locked door. Open air. The way your shirt clings.”
Leo’s hand slid up Eli’s spine, warm and slow, as if mapping muscle and intent.
“I think you wanted someone to look,” Leo said. “Not just anyone. Someone who’d see.”
Eli’s mouth parted. He couldn’t lie, not with Leo this close. Not with the night pressing in.
“I want…” He hesitated. “I want to feel what I look like.”
Leo nodded, as if he understood the ache of that.
“You look like surrender,” he whispered.
Eli shuddered.
Then, Leo’s fingers found his wrist and gently guided it up. Placed Eli’s palm against his chest.
“Feel it,” Leo said. “I’m not just watching. I’m taking.”
Eli’s fingers curled, feeling the heartbeat beneath skin and muscle. The thrum of heat between them. The scent of salt and smoke and city dust clinging to Leo’s neck.
A moan rose, soft and helpless, from Eli’s throat.
Leo smiled against his cheek.
“Good.”
Then both hands were at Eli’s waist, dragging his hips forward, forcing him to straddle the curve of the ledge behind him. Not dangerous—but close. Legs parting. Balance tipping. Sky yawning open around them.
“You trust me?” Leo asked.
Eli nodded, dazed.
Leo stepped between his knees, pressing their bodies flush.
The friction stole Eli’s breath.
And still they hadn’t kissed.
It made everything else sharper.
Leo’s mouth hovered near his. “When I do,” he said, “you’ll know.”
His thumb brushed the edge of Eli’s waistband. Just once. Slow. Deliberate.
Then again.
Eli’s body trembled.
Consent buzzed in the space between them.
Thick. Electric.
“I’m going to touch you now,” Leo whispered. “But only if you ask.”
Eli’s breath caught.
He reached for Leo’s shirt, curled his fingers in the linen, dragged him closer until their foreheads touched.
“Please.”
And Leo’s mouth curved. Not in cruelty. In reward.
The sound of a train shuddered through the city below. Faint, metallic, distant.
But here, above it all, Eli felt every inch of Leo’s attention like it was an engine inside him.
Leo’s hands moved slowly, reverently, beneath the hem of Eli’s shirt. His palms were rough in a way that made the drag of skin against skin feel like prayer. He didn’t rush. No frantic grip, no hasty greed.
He explored.
Mapped.
As if Eli were something holy that required study before desecration.
“You’re warm,” Leo murmured, lips grazing Eli’s jaw. “Already so ready.”
Eli’s reply was only breath.
Leo’s hands moved to the button of his pants.
But didn’t undo it.
Not yet.
Instead, his fingers slipped beneath the waistband, thumbs pressing against the ridge of Eli’s hips, dipping low, then lower.
A heartbeat.
Another.
And then.
His mouth found the hollow of Eli’s throat.
Open. Wet. Hot.
Eli gasped, hands fisting in Leo’s shirt. The bite of pleasure made his spine curve forward. His thighs locked around Leo’s waist. The pressure between them now impossible to ignore.
“I want you to know,” Leo whispered, “you can stop this whenever you want.”
Eli opened his eyes, found Leo watching him.
Not to dominate.
To check.
To see.
That broke something tender inside.
“I don’t want to stop,” Eli said. “I want… more.”
Leo’s mouth twitched. “Then I’ll give you more.”
His hands slipped deeper.
Fingers teasing where warmth met pulse.
And just as his hands slipped beneath…
The first touch was barely anything.
A brush of fingertips along the base of Eli’s cock, featherlight, exploratory. But after all that build, all that slow burn, it was enough to punch the breath out of him.
Leo exhaled through his nose, pleased. Controlled. His hand curled fully now, cradling heat and weight, thumb dragging up the slick head with maddening precision.
Eli gasped, back arching, thighs tightening around Leo’s waist. The stone beneath him grounded nothing. His whole world was Leo’s hand, Leo’s mouth near his ear, Leo’s voice like smoke on the wind.
“Look around,” Leo whispered. “City’s still moving. Lights still flickering. Somewhere, someone might see you like this.”
Eli didn’t open his eyes.
He didn’t need to see.
He felt it.
The way the city pulsed beneath them. The hum of fluorescent bulbs. The click of a far-off window. Maybe someone had noticed. Maybe a stranger’s eyes were locked on the silhouette of his body, open and arched and trembling on the edge of a rooftop.
And maybe that was why he moaned when Leo dropped to his knees.
The sky behind him was indigo now, stars just beginning to wake.
And Leo’s mouth…
Oh.
It wasn’t gentle. It wasn’t hurried either. He worked with a devotion that bordered on religious. Tongue, lips, heat, pressure. Every inch he took, he made matter. Every sound Eli made, he seemed to collect, like proof.
Eli gripped the ledge, knuckles white. His hips rocked forward, helpless against rhythm, chasing that wet velvet slide.
Leo didn’t stop him.
He guided him deeper.
Encouraged the surrender.
And when Eli glanced down, Leo was looking up at him—eyes black with hunger, mouth full of sin, hands gripping his thighs like handles.
It was too much.
Too perfect.
Too fucking earned.
“Leo—” he gasped, warning curling in his voice.
But Leo just moaned around him.
And Eli broke.
The kind of break that rips through you. The kind that sings your whole body into climax. Muscles tightening, heat spilling, pulse hammering behind the eyes.
And Leo didn’t pull away.
He took it all.
Even after Eli cried out, even after his hips stuttered, even after his body slumped back against the ledge, chest heaving.
Only then did Leo rise.
He wiped his mouth with the back of his hand, eyes still locked on Eli like a storm hadn’t yet passed.
“That,” he said, voice gravel-dark, “was just the beginning.”
Leo didn’t hold back now.
Whatever patience had guided him before, the slow tease, the heat-soaked rhythm of his hands and tongue, was gone. Replaced with something harder. Hungrier.
His hips snapped forward, sharp, controlled, but brutal enough to make Eli cry out.
Again.
The sound bounced between brick and stone and sky. A raw, open sound. The kind a stranger three buildings over might remember in the morning, without knowing why they’re still hard under the sheets.
Leo’s grip on Eli’s waist was bruising. One hand slid up beneath his shirt, palming his chest, finding a nipple and pinching just hard enough to make Eli whimper. The other stayed low, guiding the angle of every thrust, dragging him back each time their bodies met.
“Fuck,” Leo breathed. “You take it so well.”
Eli couldn’t speak.
His mouth was open, but nothing came out except need. He braced harder on the ledge, knees shaking, every inch of his body held at the edge of collapse.
And Leo just kept going.
Pounding into him with rhythm, with purpose, with the kind of deep thrusts that made Eli feel like he was being split and made whole all at once.
“I want them to hear you,” Leo growled. “I want someone, somewhere, jerking off to the sound of this.”
Eli moaned. Loud.
“Again,” Leo hissed. “Let them hear what it feels like.”
Eli obeyed. Couldn’t not obey.
He cried out, wanton and wrecked, pushing back to meet each stroke, feeling it all—Leo’s cock dragging deep, the city humming around them, the shame, the glory, the surrender.
“You’re going to come again,” Leo whispered.
“I—I can’t—”
“You will. I’ll make sure of it.”
Leo’s hand snaked down, wrapped around Eli’s cock, still slick, still oversensitive. He stroked in time with his thrusts—hard, relentless, perfect.
Eli shattered.
It came out of him like fire, a full-body quake, thighs locking, vision gone white. He spilled over Leo’s hand and onto the ledge, pulse crashing like a wave inside his chest.
Leo thrust once more. Twice.
Then groaned, deep and low, as he came inside him.
A stretch of silence followed. Not awkward. Not empty.
Heavy.
Their bodies still joined, skin to skin, slick and trembling. The city no longer roared.
It listened.
They didn’t move for a long time.
The wind picked up first, reminding Eli he had skin, that his shirt was open, that sweat was cooling fast along his spine. Somewhere a window slammed shut. A door clicked open. The rooftop world came gently back into focus.
Leo’s chest rose and fell behind him, steady, warm, still pressed to his back.
And inside Eli... was still Leo.
He didn’t know what to say.
So he didn’t say anything.
Not until Leo pulled back, carefully, his hands lingering at Eli’s hips like he wasn’t quite ready to let go.
“You okay?” he asked, low.
Eli nodded. “Yeah.”
“Really?”
Eli turned then, just enough to see Leo’s face.
And in it—no cruelty. No smugness. Just a strange softness, like someone who knew how to hold danger but chose not to tonight.
“I’m good,” Eli said. Then quieter, “Better than good.”
Leo let out a breath. Almost a laugh. He reached into his pocket, pulled out a crumpled pack of cigarettes, lit one. Offered it.
Eli took it with a still-trembling hand.
They smoked side by side, bodies close but no longer urgent. Just there. The glow of ember lighting the dusk between them.
“What now?” Eli asked.
Leo exhaled smoke toward the stars.
“You climb back down,” he said. “Go home. Maybe pretend this didn’t happen.”
Eli looked at him, brow furrowed.
“And you?”
Leo smiled, crooked and unreadable. “I stay.”
“But you said the door—”
“Was locked. Yeah.”
Eli stared.
Realization broke over him like dawn.
“You lied.”
Leo took a long drag. “Did I?”
Eli let out a breath. Shook his head. “Fuck.”
But he wasn’t angry.
Not even close.
“You needed it,” Leo said simply. “Didn’t you?”
Eli didn’t answer.
He didn’t have to.
His silence was truth enough.
The city had fallen asleep.
Not completely, no city ever does, but the sounds had softened. The last train had passed. The sirens quieted. Even the breeze felt slower, brushing Eli’s cheek like a goodbye.
Leo stood at the ledge now, shirtless, cigarette long since finished. He looked down at the streets as if waiting for something. Or someone.
Eli adjusted his shirt, hands still unsteady. He could feel Leo’s touch everywhere, under his skin, in the ache between his thighs, in the way his breath still wasn’t steady.
But also deeper.
Something had shifted.
Something unnamed.
“I don’t even know where you live,” Eli said.
Leo didn’t turn around. “You do.”
Eli frowned. “I do?”
Leo nodded toward the building across the alley. Third balcony. The one with the red lantern, always dim.
Eli blinked.
“I’ve seen that light,” he said.
“I know.” Leo looked over his shoulder. “You take pictures of it sometimes.”
Eli’s throat went dry.
“How long have you been watching?”
Leo shrugged. “Long enough to know how you look when you want something you think you shouldn’t.”
Then he walked toward Eli, slow and sure, and took his hand.
“I leave my door unlocked,” Leo said. “Most nights.”
“What happens if I come in?”
Leo’s smile curved sharp. “You won’t leave the same.”
Another step back. His body caught in silhouette, jaw sharp against the night, the faintest glisten of sweat still clinging to his chest.
“Next time,” Leo said, “bring someone to watch.”
And then, he was gone.
Vanished down the metal stairs on the other side of the roof, leaving only echo and ache and the city returning to itself. He hadn’t noticed the other stairs before, half-hidden behind a tangle of piping and shadowed by satellite dishes.
Eli stood there a long time.
Body still thrumming.
Sky still wide.
He looked out at the buildings, the windows, the shadows behind glass.
And smiled.
- Rowan Thornwell




