Work Text:
It starts – like too many things between them – with a fight that isn’t supposed to matter.
It’s afternoon on the Sunny, sky bright and stupidly blue, the air thick with salt and heat and just enough noise that the world feels watched without anyone actually interfering.
Zoro rolls his shoulders, bare feet planted on sun-warmed planks with Kitetsu in hand, nice and lazy at his shoulder. Sanji’s already moving even before he says anything, because that’s how he loves to roll. He’s light on his feet, all the weight over the balls, upper body loose. His shirt sleeves are rolled to the elbow, exposing the fine bones of his wrists, the flex of tendon when his fingers clench and Zoro hates that he notices, but he’s long given up on trying to stop himself.
“Try not to embarrass yourself today, Mossy,” Sanji drawls, because god knows his mouth doesn’t know how not to. “Wouldn’t want the ship to think you’re slipping.”
“The ship knows I could cut it in half if I wanted,” Zoro sneers. “Can you say the same or do your legs stop at vegetables?”
Sanji’s lips curl, sharp. “Step into range and find out.”
Zoro’s used to this rhythm by now: the feints, the bickering, the way insults stand in for congratulations and concern. It all sits in a familiar place in his chest, a muscle he flexes every day without really noticing, except for today, apparently. Today he notices because when Sanji darts in to test his guard – a blur of colour and long legs, the faint whisper of soles on the planks – Zoro’s brain does the wrong thing for a split second. It doesn’t think incoming kick. It thinks close. Close enough to smell starch and smoke and lemons, close enough to see the faint sheen of sweat at Sanji’s temple, the way the collar of his shirt gapes a little where he undid the button, showing a sliver of collarbone. Close enough that when Zoro brings his sword up to parry the rush of satisfaction at the clean contact is tangled, somehow, with something hungrier and much less helpful.
He shuts it down, furious at himself, and lets muscle memory take over. Sanji’s ankle slams into his guard, the impact shuddering down Zoro’s arms. He pivots, letting the force carry him and sending Sanji skidding back a step.
“Sloppy,” Zoro sneers.
“Speak for yourself,” Sanji snaps, already coming in again.
They trade blows faster. Sanji’s kicks are as ridiculous as always, strong enough to break bones and fast enough that Zoro has to actually pay attention. But Zoro’s improved too; his footwork is sharper, his timing honed nothing but training and pain. They fall into a groove: hit, block, insult, breathe. The world narrows to just the deck underfoot, the weight of the sword in Zoro’s hand, the bright arc of Sanji’s leg as it cuts through the air toward his ribs.
Then Sanji goes high, feinting for his head, before it snaps low and Zoro fucks up. He drops his guard to catch the lower strike, giving Sanji the opening he needs to use his own momentum to wrench the sword sideways. It’s not enough to tear it free but it throws Zoro’s balance for a second, which means Sanji crashes straight into his chest. They slam together with a breath-stealing thud as Zoro’s back hits the mast, hard, sword arm pinned against the wood by the press of Sanji’s body.
Zoro’s breath jolts out of him. His heart freezes and then pounds, too loud in his ears.
“Got you,” Sanji pants, breath hot against his cheek. He smells like sweat and smoke and whatever he’s been cooking. Heat knocks through Zoro in a wave, leaving him both bewildered and furious with itself, even as he slams his knee into the mast for leverage before kicking off with explosive force. They spin in a tangle of limbs, bodies twisting together like ropes under strain, until Sanji’s back hits the wood with a satisfying crack. Zoro jams his forearm across Sanji’s chest, pinning him there with bruising pressure while his other hand catches Sanji’s wrist and pins it overhead. The cook’s body arches slightly under the hold, muscles flexing in resistance; Zoro feels the rapid rise and fall of his ribs, the heat radiating off him like a damn forge. “Do you?”
Sanji bares his teeth, chest heaving under Zoro’s arm, so close. Too close, actually: Zoro can feel each sharp breath against his own ribs, feel the way Sanji’s heart’s hammering as stupidly fast as his. Sanji flexes, clearly testing the hold and, sure, he’s strong but Zoro’s braced well, weight set, Kitetsu pressed under Sanji’s ribs just enough to be clear.
“Yield and I’ll let you up,” he smirks.
“In your dreams,” Sanji hisses and twists again. Zoro’s grip tightens, muscles straining, noses almost bumping and from here Zoro can see a faint scar under Sanji’s jaw he’s never noticed, a tiny pale slash cutting a line into the stubble. His gaze catches there and that’s when it happens, when Sanji lunges – not with his body, but with his mouth. There’s a flash of movement, a warm puff of breath and then a sharp, shocking sting right at the curve of Zoro’s shoulder where neck meets muscle as Sanji’s find home. He bites through skin and sweat and the thin layer of ache already there from the fight, hard enough that Zoro feels each individual point, a ring of pain blooming hot under his collar and jerks, a helpless sound punching out of him, more surprise than anything. His grip falters for a heartbeat and Sanji twists under Zoro’s arm like smoke, ducking out, leg hooking behind Zoro’s knee. Zoro hits the planks on his back with a grunt, air driving out of his lungs and Kitetsu skittering away.
By the time his vision stops bouncing Sanji’s straddling his hips, one knee planted painfully in his side and an hand around Zoro’s throat. His thumb presses into the hinge of Zoro’s jaw – a clean, efficient choke point.
“Yield.” His voice is low and a little breathless, utterly fucking mesmerising, flush with with exertion and something darker, a cheeky lilt that promises more if Zoro pushes. The place on Zoro’s shoulder where Sanji’s teeth sank in is throbbing in time with his pulse, a hot insistent ache anchored deep in muscle, radiating heat like a brand. It feels wildly, vividly unfair how badly he wants Sanji to do it again, to lean down and bite harder, elsewhere, to mark him until the ache drowns out everything else.
Zoro stares up at him, blinking through the haze, chest heaving as he fights for air. “You bit me,” he manages, voice wrecked and rough, because his brain has apparently forgotten how to function, short-circuited by the way Sanji’s body feels atop his, solid and commanding and alive.
Sanji’s mouth curls. “No shit.” He doesn’t sound apologetic; if anything he sounds pleased and Zoro should shove him off. He should grab a sword, restart the spar, call the bite a cheap shot. He should say fight with your legs, shitty cook, not your teeth and turn it back into what it was a few minutes ago. He does none of that. He lies there for one dizzy moment instead, staring up at the man braced over him, feeling the pinpoint throb where those teeth were. Feeling the warmth of Sanji’s weight over his hips as he shifts, intentional or not. The way Sanji’s fingers move subtly at his throat, like he hasn’t decided whether to let go or not.
“Fine,” he grits out. “You win.”
Sanji sniffs, theatrically put-upon, but releases him. “Of course I do. Don’t look so shocked, Mosshead. You’re the one who got distracted.”
Zoro pushes himself up on his elbows and tries to glare. “Didn’t expect you to fight dirty.”
Sanji’s eyes flash with something quick and unreadable and then gone, voice dropping half a note. “Stick around, then. You might see worse.”
Zoro’s heart does something very fucking stupid in his chest.
x
The second time Sanji bites him is on an island that smells like metal and rain, its air gone thick with the coming storm. The sky’s gone that ugly greenish grey that spells t-r-o-u-b-l-e, clouds building over the jagged ridge-line. The village is already emptying in response, all doors slamming and windows shuttering, people running for whatever passes for shelter out here.
Of course they find trouble before the storm does.
“Idiots at 3 o’clock,” Nami scowls, finger stabbing toward a cluster of uniformed figures trying to look inconspicuous. “Probably the welcoming committee.”
The so-called welcoming committee has rifles, dogs and the sort of posture that says they’ve taken a bribe and they’re not happy about having to earn it. It goes to hell pretty quickly after that, as is typical for them, really.
Smoke grenades pop somewhere, filling the air with choking grey as the dogs go off, the sound of their barking gone sharp and panicked. Somewhere Luffy’s laughing, which is how Zoro knows their captain’s having a good time. He’s got Shusui and Kitetsu out, one in each hand and Wado still at his hip. The smoke makes everything softer around the edges, forms half seen and movement more important than detail. He almost likes it that way – it makes it easier to stop thinking.
“Moss!” Sanji’s voice cuts through the noise, closer than he expected. “Left!”
Zoro pivots to knock the baton aside, foot slamming into a chest out of reflex. The guy stumbles back into the smoke and Zoro doesn’t bother to see if he stays down. They push through the mess, finding themselves back-to-back without thinking about it. Sanji’s kicks thump and crack around him and every so often Zoro sees a flash of orange flame through the smoke, a heel colliding with a jaw, and something curls low in his gut that has nothing to do with battle joy. He’s in the middle of cutting through a line of bounty hunters when it happens, when he hears a new sound under the chaos, high and keening, a cry that doesn’t belong in any kind of battlefield. His attention snaps sideways on instinct to – there, through the smoke – a little kid who can’t be older than six, crouched behind an overturned cart with big eyes and hands planted firmly over their ears.
They’re too far but Zoro moves anyway, planting his foot on a fallen crate to push off, body twisting and swords up. The distance is all wrong; he’s not going to make it in time, he knows it even as he tries. But then Sanji slams into his flank like a goddamn meteor, hip driving into his ribs with bone jarring force, an arm wrapping around his waist like a vice and fingers digging into the soaked fabric of his haramaki. All Zoro gets is a glimpse of blonde hair whipping like a flag in the gale and Sanji’s profile snarled in feral determination before the world tips violently in the other direction, gravity flipping as they crash down together.
The shot cracks overhead where Zoro’s skull just was, a thunderous whip that sends a spray of splinters raining down over them like jagged confetti, wood shards biting into Zoro’s exposed arms and neck. He keeps hold of his swords by pure reflex, wrists twisting awkwardly to avoid slicing either of them open in the tumble, the hilts slick with rain and blood from an earlier graze. They roll into the shelter of a stone wall, breath knocked out of him in a whoosh that leaves his lungs burning, landing with Sanji half on top of his chest, heavy and unyielding, with one hand jammed hard into his shoulder to keep him pinned flat against the earth. The impact sends stars exploding behind his eyelid.
“What the hell!” he snaps, adrenaline surging like fire in his veins as he bucks instinctively, trying to shove Sanji off.
Sanji doesn’t answer with words. Instead, he bites him, right there on his chest, teeth clamping down hard on the edge of old scar tissue where Mihawk’s cut once tore him open like paper, reopening that phantom ache in a blaze of fresh agony. Sanji’s canines sink in so hard fabric tears faintly under the force, the give of muscle and scar yielding to enamel with a wet, obscene grind. Zoro feels it all: the sharp pierce of incisors breaking, the blunt crush of molars grinding down, hot saliva soaking through to mingle with his sweat, the throb of his own pulse trapped under Sanji’s jaw like a caged beast, a white-hot line. His entire body jolts, arching involuntarily under Sanji’s weight, lungs seizing as heat floods him, barely noticeable above the grind of teeth worrying his skin, possessive and desperate, a command etched in flesh: stay down, you idiot, stay alive.
Zoro’s free hand claws at Sanji’s back on instinct, fingers bunching in the cook’s shirt, nails scraping over rain-slicked fabric and the hard ridges of muscle beneath, torn between shoving him away and pulling him closer. Sanji’s voice comes out muffled into Zoro’s shirt before he pulls free. “You suicidal dumbass. I said left, not throw yourself in front of a gun.”
“Shut up,” Zoro grits out. His heart’s hammering so hard he can feel it in the bite mark, each throb sending a fresh wave of sensation through it, pain laced with something sharper and less nameable. He should be furious he got tackled and even more furious he got bitten and he is, a little, rage simmering under the surface like banked coals. But there’s a thread of something else twisting through it: that same stupid, unwanted thrill from before, the knowledge that Sanji’s first instinct when panicking about him was apparently teeth.
“Next time you duck when I say duck.”
“You didn’t say duck,” Zoro scowls but his voice comes out rougher than intended, hand still holding the other man close instead of pushing away.
Sanji bares his teeth in a grin that’s more snarl than smile, lips glistening with rain and a hint of Zoro’s blood from the bite. “I’ll start using one word instructions if your seaweed-brain can’t handle anything else, I swear to god -”
“Oi!” Franky’s shout cuts through the smoke from somewhere ahead. “We’re moving on! Quit makin’ out back there!”
Zoro and Sanji both freeze. Sanji’s face goes an interesting shade of red and Zoro becomes aware, all at once, of the way they’re tangled: Sanji sprawled over him, thigh wedged exactly where it shouldn’t be, hand still bunching his shirt, fresh bite mark throbbing under his grip.
He shoves and Sanji rolls off with a curse, scrambling back to his feet. Zoro follows, muscles protesting. The world sways; he grits his teeth until it settles.
Sanji doesn’t look at him when he straightens his coat. “Get your head on straight,” he snaps, light and vicious. “I’m not dragging your corpse back to the ship. You’re too heavy.”
Zoro snarls, because the alternative is saying thank you for tackling me and also i think i might like your teeth, which is not happening. “Try it. Maybe you’ll build some muscle.”
Sanji flips him off as they plunge back into the smoke, into the fight. The storm breaks overhead in earnest, rain hammering down, washing blood and dust away in streaks.
Later, when it’s over and they’re back on the Sunny, Zoro peels his shirt off and catches sight of the mark in the mirror. It’s ugly and deep red, already darkening toward purple at the centre, a faint bleeding crescent where his skin protested the most.
He should be annoyed. Instead, he stares at it for too long, thumb brushing once, lightly, over the sore flesh. The touch sends a sharp jolt straight down his spine and he thinks of Sanji’s mouth there, thinks about the sound of his voice, rough and scared and angry.
The weight of his body holding him down, shielding him.
x
The next time it’s because they’re hiding which feels about right, honestly. They’ve barely made it three streets from the bar before the Marines show up, late and loud and ready to arrest somebody who isn’t even there anymore. The others scattered with practised chaos and Zoro and Sanji end up together by accident, mostly, ducking down side alleys and weaving between laundry lines and stacked crates. Now they’re wedged into a narrow gap between two stone buildings that smells like damp earth, old smoke and something sweet from a baker’s shop nearby.
“Still your fault,” Sanji mutters sourly.
“You started it,” Zoro hisses back and, honestly, he’s not entirely sure what ‘it’ is – the bar fight, the insults, the way his brain has been replaying the feel of Sanji’s teeth in his shoulder for days. All of it, probably.
Bootsteps clatter past the mouth of the alley, too close. A lantern’s yellow glow sweeps over cobblestones, then away again and they both go still, pressed flat to the wall, trying to be nothing but shadow. The gap’s too narrow, though, and there’s nowhere to look that isn’t Sanji – his jawline, bruised knuckles, the faint smear of blood at the corner of his mouth where someone’s punch glanced off.
he looks good like this, Zoro thinks wildly. Wrecked and sharp and alive.
“Breathe quieter,” Sanji scowls.
“Stop breathing on me,” Zoro snaps back.
“You wish.”
Another pair of Marines jog past the alley, voices overlapping. The light swings back, too close, and Zoro’s hand twitches toward his swords but Sanji moves faster: he slaps a palm over Zoro’s mouth and shoves their bodies even tighter into the darkness, his own frame curving to shield Zoro from view. His thigh bumps up, higher between Zoro’s legs, pinning his hips to the rough stone as Zoro’s spine hits the wall. The impact grinds grit into his shoulder blades, Sanji’s chest pressed into his.
“Don’t you dare move,” Sanji whispers, lips almost brushing his ear.
Zoro goes still because he’s not an idiot but god knows still isn’t the same as calm. Not with Sanji’s heartbeat thudding against his ribs, not with his hand hot over Zoro’s mouth, smelling like smoke and soap and fried something. Not with the memory of teeth in his skin lighting up like a livewire.
The light’s glow lines the edge of Sanji’s profile for a second, highlighting his nose and cheekbone, the curve of his mouth, before it passes. The footsteps fade down another street but they don’t move. Sanji’s hand is still on his mouth, breathing still shallow and quick. Zoro feels each exhale fan across his cheek, damp and warm.
“Can let go now,” Zoro mumbles into his palm.
“You’ll say something stupid,” he says quietly. “Give us away.”
Zoro raises an eyebrow and shifts his head, just enough that his lips brush Sanji’s skin and at first it’s not even deliberate. More like the accident that happens when two people are too close in too small a space but Sanji jerks like he’s been shocked all the same. His fingers twitch and, this time, Zoro does it on purpose, dragging his teeth across the centre of Sanji’s palm, nice and slow. Sanji inhales sharply.
“What the fuck’re you –” he starts, hand starting to pull back but Zoro catches his wrist and just. Doesn’t think about it. He doesn’t line it up or argue with it or ask if this is stupid because he’s been doing nothing but thinking for days now and it hasn’t helped at all. His body just… moves. He drags Sanji’s hand away from his mouth but keeps hold of his wrist, using the same motion to yank him in, closing the last impossible gap of space until he can get his teeth into where Sanji’s neck slopes into his shoulder, just above the collar seam.
His bites into heat and muscle and the sensation is brutally physical: warm flesh braced under him, the delicate drag of skin between enamel, the way Sanji’s pulse thrums against Zoro’s mouth like a live thing, erratic and pounding. It’s the kind of contact that makes the world narrow down to pressure and breath, the salty tang of skin seeping through the thin fabric to mingle with the acrid bite of cigarette smoke that clings to Sanji like a second skin. Zoro’s jaw clenches instinctively, the bite deepening just a fraction, feeling the subtle shift of tendon and sinew beneath, the way it compresses and resists all at once, sending a thrill up his spine that feels like finally claiming territory in a fight he didn’t even know he was waging.
He expects a knee to the gut or heel to the ribs, Sanji’s voice like a whip: what the hell is wrong with you? but Sanji makes a broken exhale that Zoro feels more than hears, intimate and vulnerable and laced with something that Zoro’s never heard from the cook before, not in their spars, not in his taunts.
For a heartbeat Zoro’s brain does the slow horrified inventory: his own breath coming hot and ragged against the bite, the way his tongue presses against skin, tasting more salt, wanting more Sanji. The way Sanji’s hand grabs at the back of Zoro’s neck, firm and warm, fingers threading into hair like he’s grabbing a handle he’s always wanted to use, nails drug into scalp in a way that sends electric shivers down Zoro’s back. The pressure isn’t violent but it’s absolute; it pins Zoro in place with the same surety Sanji uses in battle when he decides this is where Zoro stays, the heat of his palm seeping through like a brand. He can feel the way Sanji leans into the bite instead of away, offering more throat, more skin, pulling his neck just enough that the tendon stands out, taut and inviting, so Zoro bites down again and this time the give is exquisite, flesh denting under pressure, a low groan vibrating from Sanji’s chest as Zoro teases the spot with his canines, dragging them in a slow scrape.
Sanji doesn’t shout when he’s going for the kill, he never has. He murmurs it, warm and vicious, right against Zoro’s skin like it belongs there, like it’s always belonged there and Zoro’s just been too stupid to notice: “Harder.”
Zoro makes a strangled sound, hand at Sanji’s hip gripping tighter, drawing closer, eliminating distance like it’s a mild inconvenience. His teeth drag over fabric and skin as he adjusts, learning the line of Sanji’s shoulder by force, the bite leaving a trail of reddened skin that his tongue instinctively soothes. Sanji shudders, mouth parting on a soft, drawn-out whine that Zoro wants to swallow whole.
Sanji’s lips brush Zoro’s hairline, almost a kiss, almost nothing, a tease. “You’re shaking,”
“I’m not,” Zoro lies, even as his hands tremble slightly on Sanji’s hip, the adrenaline and arousal mixing into a heady cocktail that makes his skin buzz.
Sanji’s hand slides up from under Zoro’s shirt to his jaw again, thumb catching at the corner of his mouth to mirror the bite, feeling the damp heat there. His breath’s uneven, expression is knife-bright with satisfaction, like he got exactly what he wanted and now he’s deciding what to do with it, so Zoro’s body responds like it always does when it’s cornered: forward. He surges in and crashes their mouths together, messy and hungry, too much teeth and desperation, wanting to hear Sanji make that sound again and again and again until it becomes a language only he understands, a map written just for him.
Sanji laughs against his mouth, breathless and so, so delighted. “Good boy.”
