Work Text:
Zoro adjusted the microphone with trembling fingers, taking a deep breath. The view count kept climbing — 43,000… 46,000… almost fifty thousand people watching his special birthday livestream. The game screen flickered in front of him, his teammates laughed and chatted in their voice channel, and the chat exploded with messages every second.
But all Zoro could really feel was Sanji’s warm hand slowly moving up his thigh.
Sanji was kneeling under the desk, out of the camera’s frame.
Discreet. Silent. Relentless.
— You’re seriously gonna do this now…? — Zoro had whispered minutes earlier, heart pounding, just before going live.
Sanji had only smiled. That wicked smile that said it’s your birthday, and I’m giving you a present you’ll never forget.
Now there, with the headset muffling part of the outside world, Zoro tried to stay focused on the screen.
But the heat of Sanji’s mouth nearing his groin was stealing all of his thoughts.
He was semi-hard inside his underwear, and Sanji seemed determined to change that. His hands moved higher, until they reached the zipper of Zoro’s jeans. A quick tug — swift, experienced. Zoro swallowed hard, trying to look relaxed on camera while his boyfriend carefully freed his cock, pulling his underwear down to his knees.
The cold air of the room hit his exposed skin. The contrast was instant.
Zoro’s cock hardened immediately.
— Hey, Zoro, ready for the next match? — his teammate’s voice came through the headset.
— Y-yeah, of course. Just adjusting… some settings here — he replied, voice hoarse, trying to keep it casual.
But Sanji already had his mouth open.
And when he gently licked the tip, just the edge of his tongue sensually brushing over it… Zoro had to bite his lower lip.
A soft moan escaped.
Short. Quick. But enough to make the chat explode.
"LOL is Zoro moaning???"
"Someone give the boy a REAL present"
"He’s acting SO weird today lmao"
Zoro ran a hand over his face, trying to hide the blush. His eyes were half-closed, fingers trembling on the mouse.
And Sanji… was just getting started.
With a firm movement, he took Zoro’s entire cock into his mouth, down to the throat. The heat closing around him was indescribable. Zoro had to shift back slightly from the desk, spreading his legs more, trying not to moan out loud.
Sanji started a delicious rhythm.
Slow, wet sucks, going deep, then rising again with his tongue sliding along the shaft. With each movement, Zoro felt the muscles in his legs tense. His breathing was heavy. His whole body was starting to tighten.
And as if that wasn’t enough, Sanji used his hands masterfully — one gripping the base of his cock, the other sliding up to his bare abdomen, revealed by the shirt pushed up. He could feel Sanji’s strong, possessive grip, even while trying to keep his voice stable on the mic.
— L-let’s go, guys… focus on the next play, alright?
— You good, Zoro? You’re acting weird today. — one of the friends laughed.
— J-just tired. Eight-hour stream, right? — he replied, voice cracking.
Sanji then ran his tongue along the main vein, then swallowed everything again in one go, letting out a deep, muffled moan. The sound of his wet mouth filled the silence under the desk, and the scent of sex was slowly rising in the air.
Zoro leaned forward a bit, trying to hide his face from the camera.
But his eyes were glazed. Skin flushed. Mouth slightly open in silence.
— Chat… — he mumbled, while Sanji sucked him mercilessly — if I lag a little today, forgive me. My boyfriend decided to give me a birthday “present,” and… — he paused, moaned softly by accident, then gave a nervous laugh. — Can’t really say no, right?
The chat exploded.
"HE CONFESSED"
"DUDE LMAOOOOO"
"THE GIFT IS REAL"
"Sanji is so damn lucky lol"
But by that point, Zoro couldn’t read anything anymore.
He was gone.
The heat in the room seemed to rise by the second, even with the AC on. The sound of mouse clicks and keystrokes now blended with the subtle and dangerous sound of wet sucking and heavy breathing beneath the desk.
Sanji wasn’t in a hurry.
His tongue was sin incarnate — slow, firm, tracing circles around the head of Zoro’s cock before swallowing half, then pulling back, then repeating it all again. And again.
Zoro squirmed in his gaming chair, hips starting to move on instinct, seeking more. But Sanji kept him to his rhythm. His mouth closed with precision and torture.
— Fuck… — Zoro whispered to himself. His hands trembled.
The chat kept scrolling, but he couldn’t focus on anything except the delicious pressure taking him over below the waist. Sanji knew exactly what he was doing — using his lips expertly, his mouth creating suction, going slow on purpose, just to see how long Zoro could last.
And when Zoro thought he was going to lose control again… Sanji stopped.
Let go of his cock with a wet pop, and slowly ran his tongue along the base, staring up at him from below with bright, filthy, teasing eyes.
— Son of a… — Zoro almost said out loud, but held back.
The tension in his body was unbearable. He was so hard it hurt. Pre-cum dripped thickly, and Sanji licked every drop without breaking eye contact, like he was savoring the wait.
Zoro gripped the edge of the desk tighter. Tried to control his breathing, but his throat already let out low moans with each motion. The game on screen was running on its own — his character stuck in a corner. No clicks. No commands. He barely remembered he was live.
Sanji then used both hands: one squeezing the base, the other gliding over the muscles of Zoro’s thigh, nails lightly grazing up to his hip. Then, with a deep moan, he swallowed him whole again, down to the throat.
Zoro moaned loudly. This time he couldn’t hold it in. The sound came out raw, guttural, burning.
The chat exploded.
"OMG THAT MOAN"
"THE GIFT IS REALLY GOOD LOL"
"Someone take the boy’s mic away"
But Zoro didn’t care. He was sweating. Heart racing. His cock throbbed inside his boyfriend’s hot mouth, and Sanji was picking up the pace, sucking harder, letting out muffled moans that vibrated directly into him.
— D-do that again… — Zoro murmured, barely audible.
Sanji obeyed. Did it exactly the same. Deep throat. Wet sound. Firm tongue.
Zoro arched in the chair, body trembling with tension. The climax was coming — fast, inevitable, but he wanted to hold on just a bit longer. To prolong the delicious torture.
Sanji noticed.
And instead of continuing, he stopped.
Took his mouth off, ran his tongue over the tip… then blew gently.
— Fucking hell… — Zoro let out, low.
He was desperate.
But Sanji only chuckled against his skin, then dove back in.
This time, with no mercy. Sucking deep, hard, swallowing all the way to the base and coming back up again with his tongue pressing every nerve.
Zoro leaned forward, forehead almost touching the desk. A muffled, desperate moan escaped his lips.
And then… the climax hit.
It was intense. Explosive. His whole body clenched. Legs trembled. His cock pulsed violently inside Sanji’s mouth, who swallowed it all without pulling away, sucking through the final spasms.
Zoro stayed there, panting, soul leaving his body, eyes closed.
Sanji let his cock go with a satisfied pop, and cleaned it with his tongue. Then, he slowly rose from under the desk and appeared beside the chair — hair a bit tousled, victorious smile in place.
Zoro looked at him, unable to speak for a few seconds.
Then, he cleared his throat, pulled the mic, and said in the roughest, most wrecked voice he’d ever had on a stream:
— My loves… I think Zoro’s gonna wrap up early today.
You get it, right?
And with one click, the stream went offline.
But the birthday was only just getting started.
