May I request some zoro being Normal™️ about sanji in a sparring match 🫣 (love your writing so much btw <3)
idk what you mean, zoro’s soooo normal about it 🥹
x
Zoro tells himself this is just training.
Just another spar, just footwork and timing and reflex, the same old dance they’ve been doing since the Baratie only now it’s on their ship. If it feels different, that’s the weather. That’s all.
It’s not his fault the afternoon is stupidly hot, the kind of heat that sits heavy on his shoulders and makes the Merry’s deck shimmer like it’s about to melt into the sea. Not his fault the air tastes like salt and wood and the faint bitter curl of Sanji’s smoke.
Not his fault Sanji’s forearms are cut with tendon and scar, or that his shirt’s gaping open enough to show the long pale line of his throat, the hinge of collarbone, a teasing slice of chest every time he moves.
Definitely not his fault Sanji’s legs do… that.
“Ready, Moss?” Sanji drawls, cigarette tucked in the corner of his mouth and his hands in his pockets like he just wandered out here by accident, like he’s not about to try and turn Zoro’s ribs into a xylophone. The breeze toys with his hair, the sun painting a sharp little glow along the edge of his jaw.
Zoro rolls his shoulder, feeling the familiar pull of muscle over old wounds, the pleasant itch of wanting to hit something. His swords are sheathed, cords wrapped around the hilts for a little extra padding. He could’ve grabbed bokken, but frankly, if Sanji can dent steel with his damn feet, Zoro’s not the one who needs protection. “You’re the one who needed a break for tea.”
“It’s called hydration, you philistine,” Sanji says sweetly. “Some of us don’t run on pure ego and bad life choices.”
They drift into the clear stretch of deck between mast and rail, that little sacred strip Luffy’s unofficially declared the Fighting Zone.
Up front, Luffy’s draped over the figurehead like a particularly excitable figure ornament, already yelling: “Sanji VS Zoro round a hundred!!” to no-one who asked. Usopp’s wedged behind a barrel with binoculars and a notebook labeled FUTURE LEGENDARY FIGHTS I WITNESSED UP CLOSE in huge, hopeful letters.
“Try not to break each other too much,” Nami calls lazily. “The ship still needs a cook and a swordsman, you idiots.”
“Can’t promise anything,” Zoro mutters, sliding into stance. He can feel Sanji’s gaze like a hand on bare skin, scanning. Clocking the weight on Zoro’s back foot, his centre of gravity, where the swords sit, the tell in his shoulders. Years of fights condensed into one quick, sharp appraisal.
Zoro hates that it makes his skin feel too tight.
“Alright,” Sanji says and then exhales, once but to Zoro it feels like watching someone shrug out of a coat and into something sharper. The slack in his spine disappears. His hands slip out of his pockets. His chin tucks a fraction. One leg slides back, heel lifting, knee bending just enough. Lazy swagger folds up on itself and becomes a line, a vector, a weapon.
Every bit of him narrows and sharpens into something clean, lethal, there.
Zoro knows this Sanji. This is the Sanji who tore through Krieg’s men like they were made of wet paper. The one who sprinted down a falling column on Skypiea like it was a set of stairs built just for him. The one who moves like the deck tilts the way he wants, like the rules of gravity are a polite suggestion he mostly ignores.
Somewhere under Zoro’s ribs, something lights up like a match. His hands itch for his hilts and his kicks. Every part of him that cares about strength, about challenge, about having someone in front of him who won’t fall over easily - every part of that sits up like a wolf catching a scent.
Layered underneath, tangled up quiet and vicious with that hunger to fight, is the other thing he won’t name: the way his attention keeps dragging to the long line of Sanji’s calves, the flex of muscle under rolled fabric, the easy coil and uncoil of those legs that have been around his neck more than once in battle.
Sanji’s mouth crooks, that sharp, aggravating almost-smile that usually precedes pain. “C’mon, then.”
Usopp cups his hands around his mouth like he’s the ref of some underground tournament. “Three! Two! One! Go!!”
Sanji’s foot’s already moving on two.
Zoro barely gets his scabbard up in time: the first kick slams into the wrapped sheath with a crack that rings up his bones and the shock jars his shoulders, rattles his teeth, drives him a half-step back. Planks slide under his soles.
He grunts, digs in, smirks. “Faster. Thought you were proud of those twigs.”
Sanji’s eyes flash. “Twigs?”
The next combination hits like he’s trying to prove a point. Heel, instep, shin, all rapid fire whipcrack. Zoro’s forearms jolt with every block as Sanji’s legs blur in and out of his guard, all hard lines and clean arcs, muscle tightening and releasing under tanned skin. Every extension shows off a different angle: the long stretch of his calf, the precise point of his ankle, the way tendon jumps when he changes direction mid-strike.
Zoro flows with it because he has to. He pivots at the waist, lets his scabbards take the brunt and then slips the force away at the last second: deflect, don’t meet it head on. His wrists roll, shoulders turn. There’s a beat to it, underneath the insults and the showboating.
Left. Right. Feint high. Turn in. Cut low. He moves with it, like he always does: show him a rhythm and his body will hang a kata on it without asking his permission.
Except Sanji, the fucker, never stays on beat. He runs the pattern for three strikes and then breaks it on the fourth, dropping low instead of high, or he twists his hips the wrong way for the kick he’s throwing and somehow still lands it. One second his weight is where it should be and the next it’s like it’s migrated to his ribs, spin snapping out from an impossible axis.
A heel scythes in from the side, catching Zoro’s block at an angle that makes his elbow scream.
“Is that all you got?” he bares his teeth, muscles singing, adrenaline snapping sharp in his blood.
Sanji grins back, impossibly unbothered, breath still even. “You flirting or taunting, swordsman?”
both, Zoro doesn’t think.
He lunges instead and steel finall sings - short and hungry - as he draws, going from guard to strike in a single breath. Wado and Kitetsu clear their sheaths, arcs of dull-edged silver cutting straight for Sanji’s defense. Sanji springs off the first blade, sole skimming the flat, body bending away like grass in a gust. The second he meets with the bottom of his shoe, a sharp crack of impact that makes Chopper squeak and Usopp probably scribble something like HOLY SHIT in the margin of his notes.
And then he’s up.
Zoro’s seen drunks who fight like they’re made of water. He’s seen martial artists who mimic beasts, or storms, or some monk’s idea of a crane. Sanji’s something else. Everytime he launches into a spin, Zoro has one brief, useless moment of pure, stupid awe because he shouldn’t be able to get that much height off a flat deck and one foot. Shouldn’t be able to twist halfway through, spine bending in a way that makes it look like someone grabbed him by the hips and turned.
But he does, every damn time. He goes up, sideways, backwards, leg sweeping out in a bright, vicious arc that comes down at Zoro from above, like he’s attacking from the damn crow’s nest.
Zoro’s arms move on their own, years of survival yelling in his muscles not to take that on his skull. He swings Kitetsu up and Sanji’s shin grinds along the length of it, hard and controlled pressure. For one suspended second all of Sanji’s weight is hanging from that contact, his whole body held up by the point where leg meets steel.
From this distance, in this stolen second, Zoro gets a brutal, too-clear view. Sanji’s shin, wrapped along his blade. Sanji’s thigh above it, long and corded, the sweep of muscle vanishing under rolled fabric. The sharp notch of his hip, shirt twisted up just enough to bare a sliver of skin and the deep, clean line where it meets his waist.
Heat spikes low in Zoro’s gut, sharp and mean and immediate.
Sanji’s smirk is infuriatingly obvious. “Eyes up, sweetheart,” he purrs, literally defying gravity and still managing to clock exactly where Zoro’s staring.
Zoro snarls and shoves the leg away, harder than necessary. Sanji uses the momentum, of course, uncoiling out of it like it was the plan, all along and lands light. It’s just a soft tap of shoe on wood before he’s sliding back into stance but Zoro hears the tiny catch in his next breath.
He files it away, vicious and thrilled, and then he presses the attack.
After that, it stops being clean. It blurs. Steel flashes in hard, bright arcs as feet flicker in and out of range. The air between them turns into a knot of impacts and near-misses, the whole deck reduced to the stretch of wood they’re trying to claim from each other. Every clash rings up Zoro’s arms and down Sanji’s spine, a shared vibration wired straight into their bones.
Sweat slicks Zoro’s grip; his shirt sticks between his shoulder blades. His heart’s pounding like he’s doing weighted hill sprints, not sparring for kicks. He feints high and dips low but Sanji hops, back bowing in a ridiculous clean arc, legs scissoring over the sweep of Zoro’s blades like they’re just another rail to vault. For that heartbeat Zoro has a close view of him, loose hair and bare throat and the long lines of his legs cutting through the air. Then Sanji’s landing behind him, his breath a brief, hot ghost on the back of his neck before he’s pushed off again.
Too close, too hot and nowhere near enough.
“Stop running away,” Zoro snaps, already turning, swords coming up.
“Then keep me,” Sanji fires back and that does something ugly and electric to Zoro’s pulse. He can feel the shift now, that thin edge where a spar turns into something heavier. Where it stops being let’s train and starts being I need to win that vicious little part of his brain that doesn’t mind if people get broken on the way.
As always, Sanji pushes him right up against that line. It’s in the way he grins when Zoro lands a solid blow on his guard and the flash of teeth when a kick only glances off Zoro’s shoulder instead of taking his head off. In the way he keeps circling, forcing Zoro to adjust, forcing him to draw on the scar-deep strength in his legs, forcing him to work for every gain.
Zoro grew up under teachers who never let up. Fall down, get hit harder. The world won’t wait for you to catch your breath. He never thought he’d like someone for doing the same.
Sanji snaps a kick at his ribs but twists in, blocking high instead, catching the calf instead of the ankle on purpose and jerks, Sanji’s balance disappearing out from under him with a startled curse, weight tipping the wrong way. For a heartbeat they’re both falling into the same space, Sanji’s leg still in his grip, Sanji’s whole body spilling forward - Zoro steps into him.
His shoulder slides under Sanji’s stomach, catching him, driving through his centre of gravity. His hand drops from calf to thigh without thinking, fingers clamping around the thick muscle just above the back of his knee to keep Sanji from faceplanting into the deck.
They hit the mast together, the impact shuddering up the pole and rattling rigging, knocking the wind out of both of them. For one dazed second, all he knows is the heat of Sanji’s weight pressed against him, the solid give of ribs under his forearm. Then details click in, one by one, and every single one is a problem. He’s got one forearm wedged across Sanji’s chest, pinning him to the mast; he can feel the rise and fall of his breathing. Worse, his other hand’s still gripping Sanji’s thigh, fingers sunk in deep where hamstring meets tendon. The muscle jumps under his palm, tight and solid and there. Even worse: Sanji’s other leg had nowhere to go but up.
It means the cook’s basically wrapped around him on one side, one foot on the deck but the other hooked high around Zoro’s hip, knee bent, ankle locked in over the small of his back like his joints come with extra settings. Balanced there like it’s nothing. Like his body is built for this angle. Like this is a normal way to be standing with another man in the bright-ass middle of the day on an open ship.
Sanji stares at him, blue eyes deepened by effort. His hair’s stuck to his forehead and there’s a smear of sweat at his temple, a flush high on his cheekbones. His mouth’s parted, breath hot and fast against Zoro’s jaw.
Zoro’s hand tightens on his thigh before he can stop it, the muscle flexing under his grip, a sharp little jump that tells him exactly how hard Sanji’s holding himself up like this. He’s not even really braced on the mast - the leg around Zoro’s hip is doing a lot of that work, a living line hooked into him.
Zoro’s brain, unhelpfully, starts working out exactly how many directions Sanji can move to from here. How easily he can snap that leg higher, how his hips would twist, how little it would take for that hooked ankle to drag him in closer.
His mouth goes dry, dryer still when Sanji shivers, just enough that Zoro feels muscle fluttering under his fingers where he’s still clamped around the back of Sanji’s thigh, the leg hooked up around his hip tightening for half a heartbeat.
His thoughts do a wild, stupid circuit in the half-second before either of them moves: these legs can kick through steel. these legs are wrapped around my waist. move. let go. do not think about this.
“Enjoying the view?” Sanji manages, breath a little ragged and voice near enough that Zoro feels the vibration of it against his arm where he’s pinning him. It’s too near, even: every word hums right into Zoro’s chest.
“Your stance is sloppy,” Zoro croaks. It’s a lie and they both know it. Sanji’s balanced on one leg, spine curved just so to keep his weight centred and somehow still feels like he could wrench free and flip Zoro onto his ass in half a heartbeat. But Zoro latches onto the criticism like a lifeline. “Your guard’s open.”
“Yeah,” Sanji says, baring his teeth in the ghost of a grin. “Whose fault is that, exactly?”
Zoro realises, abruptly and with horror, that he’s leaning into the closeness in ways that are not compatible with being a sane person, on a sunny deck, in front of their crew.
He drops him. Well - drops is generous. What happens is: his hand jerks off Sanji’s thigh like it’s burned him, his forearm comes off his chest and he steps back so fast Sanji has to grab the mast to keep from sliding straight down it.
The leg around his hip unhooks and falls, shoe hitting the deck with a solid thud and the brief smear of friction as fabric and muscle drag across Zoro’s side. That tiny drag is going to live in his spinal cord for weeks.
Sanji blinks, thrown for once, real surprise cracking through the usual cocky veneer, like he hadn’t expected Zoro to retreat that fast, that hard. Zoro takes another step back, then a third, boots skidding a little.
He drags air into his lungs like he’s been underwater. His heart’s pounding in his throat, sweat running down his spine in one thick line. Every part of him that isn’t actively required to stand up and hold swords is yelling go back in and he is not, under any circumstances, listening to it. He clenches his jaw so tight his teeth creak.
“Again,” he says. It comes out sharper than he meant, a bark more than a word.
Sanji’s eyes flicker, the shift small but unmistakable. Zoro can see him taking stock, tracking the squared tense line of Zoro’s shoulders, the way his weight’s rolled forward onto the balls of his feet, the way his grip’s gone from loose to locked in. Sanji’s always been annoyingly good at reading temperature changes; he has to see where the dial just jumped.
For once, though, he doesn’t say anything clever. He slips back into his own guard, hands up, one leg sliding back as if the last thirty seconds didn’t happen. His expression smooths out the messy shock and leaves something intent and knife-sharp in its place. “Again.”
This time they don’t bother with banter. Zoro goes harder.
He tells himself it’s because Sanji pushed him and he refuses to be dragged around like some rookie, because a swordsman who pulls his cuts in training winds up buried in real battle. Because he needs to know - really know - what Sanji can take, how far the cook can go when it stops being a game.
He does not look too closely at the part of him that’s just… running. From that moment by the mast. From the way his stomach dropped when Sanji’s leg hitched high around him like it had always belonged there. From the tiny, involuntary tremor that shot through those stupidly strong muscles under his hand. From the past few months of this.
He takes all of that and folds it down into his swing and, as always, Sanji meets him in the middle. He hits harder, kicks coming in sharper and closer in escalating series of angles that should be clumsy but somehow aren’t. Together they strip the fight down to bare wiring; no fancy footwork, no show-off flourishes, just reflex and muscle memory and impact.
Somewhere on the edge of awareness Luffy whoops at every near-miss, Usopp hollering something about epic rival energy as Nami shouts at them not to knock over her deck chairs, Chopper squeaks every time a foot passes within a handspan of anyone’s head.
None of it lands. What lands is the way Sanji’s eyes spark every time Zoro parries right at the limit of his reach, the way his mouth curls, quick and sharp, when Zoro reads his spin and doesn’t fall for the feint. The short little exhale he can’t quite swallow when Zoro lets the flat of a blade slap against his ribs instead of stepping away, a traded bruise and Zoro tracks it all, keeps it all.
He keeps the sight of Sanji’s hair plastered to his forehead, a line of sweat tracking down the side of his neck. Keeps the rasp of his breathing. Keeps - hates - likes how relentlessly competent he is, how he never flinches, never backs down, how he trusts Zoro enough to fight this close and this hard and still smile about it.
The thought trips him and it’s tiny, small, just a centimetre too deep on a lunge, weight just that fraction too far past the point where he can recover elegantly. Normally, he’d catch it and fix it before anyone exploited it but Sanji is not and has never been anyone. He plants his palms on the deck, kicks both legs up, and scissors them around Zoro’s neck in a move Zoro knows, knows, he’s using on purpose, the sadistic bastard. He just - twists and momentum does all the rest.
Zoro goes down in a controlled roll, training snapping into gear to stop his head bouncing off the planks. He manages to bleed some of the force, but not enough to make any of this less compromising. For one dizzy, crystalline instant, his entire world is: Sanji’s calves locked firm around his shoulders, Sanji’s thighs bracketing his head, hot and tense on either side of his ears. Sanji’s weight tipped into his chest as he goes with the motion, choosing not to snap Zoro’s neck even though the option is right there.
“Comfortable down there?” Sanji’s voice drifts down, a little winded, a little too pleased with himself.
Zoro’s vision blanks out at the edges for a second. He grits out between teeth: “You’re asking me that while you’re sitting on my neck?”
Sanji laughs and the sound shivers straight through the muscles pressed to Zoro’s jaw, a low vibration he feels more than hears. “You should’ve blocked better, then.”
Humiliation and heat slam together in his chest. If he could turn his head even a fraction, he’ll have his face tucked against the inside of Sanji’s leg. He’s been pinned before - by bigger guys, nastier fighters, things with more teeth than sense. He knows how to get out. Three clean escapes at least: twist the hips, trap the knee, roll into the pressure and - Sanji shifts, enough to keep his balance, muscle moving around Zoro’s neck, solid and hot, the easy give of someone who knows exactly what his body can do. It feels less like a sparring hold and more like a casual demonstration of leverage: look how easily i can keep you here.
Zoro’s self-control is hanging by a thread, the thin, frayed kind that snaps if you breathe on it wrong. Some awful, treacherous part of his brain starts throwing up images he absolutely did not authorise: Sanji straddling his chest on purpose, no swords, no crowd, no excuse, Sanji’s knees planted by his ribs, hands on his wrists instead of his ankles, Sanji leaning down, hair falling around them, breath hot against his mouth as he says then keep me in that same tone.
The jolt that shudders through Zoro’s body is instant and vicious, a surge of want so sharp and sudden it almost makes him dizzy. Every place they’re touching - calf to jaw, thigh to shoulder, shin against his ear - lights up, too bright, too much. His pulse spikes so hard it’s painful. His skin feels too tight for his bones.
His hand shoots up, grabbing for the first thing that isn’t going to get him killed for indecency, landing on Sanji’s calf. His fingers sink into the muscle just below the back of the knee, skin hot and slick with sweat and pushes, puts his core into it.
Sanji yelps as the world flips again. His legs slip as the scissor loosens and they tumble. Zoro rides the motion, grinding through the roll to come out on top by sheer, stupid determination, planting Sanji’s wrists to the deck with his hands and his knees bracketing Sanji’s hips instead of his head this time.
It’s not better. It might actually be worse. They’re both panting now, sweat slick, breaths tangling hot in the narrow space between their faces. Zoro can feel Sanji’s chest rising and falling under his grip, the flutter of tendons in his own forearms as he fights the urge to either let go or clamp down harder and stay.
“Yield,” Zoro says and it doesn’t sound like a joke. Hell, it doesn’t even sound like him. It comes out low and rough and way too honest, half a plea.
Sanji’s eyes burn. “Make me.”
There’s a horrible, suspended beat where the world shrinks to the heat of Sanji’s wrists under his hands, the steady hammer of his pulse against Zoro’s fingers, the way Sanji’s body’s caged between his knees, chest heaving, throat glossy with sweat.
He could do something incredibly stupid. He could drop his head that close the sliver of space between them.
His body leans in, just a fraction. This close he can see everything: the faint freckles dusting Sanji’s nose, the way his pupils are blown so, so wide. The way his mouth is parted, lips plush and bitten-red, still a little swollen from being smashed into Zoro’s shoulder when they hit the mast. There’s a smear of salt at one corner where the tip of Zoro’s tongue could -
His brain, screaming, slams both hands on the brakes. He lets go of Sanji’s wrists like they’re hot iron and shoves himself upright so fast his knees creak.
“I’m done,” he hears himself say. “We’re done.”
Sanji blinks up at him and for a second everything Zoro’s been trying not to see is just there: the flush smashed across his cheekbones, the way his chest is still jerking with aftershocks, the faint tremble in the leg that had been hooked around Zoro’s waist.
“What, tired already?” he drawls and maybe it’d land better if his voice didn’t crack halfway through, if his mouth didn’t betray him by pulling a little too tight on the last word.
Zoro shoves himself to his feet, backing off like he’s breaking contact with an enemy blade. His palms feel empty without Sanji’s wrists in them. Worse, they’re shaking. He turns so Sanji won’t see.
“My swords are,” he lies, because swords are safe. Swords make sense. “Gotta rewrap the handles.”
He doesn’t look at the grips. They’re fine. His fingers aren’t.
From the figurehead, Luffy’s voice explodes across the deck: “That was awesome! Do it again but fall harder next time!”
Chopper barrels over, little hooves skidding. “Are you okay? Did your head hit the mast? Did your neck twist too far? Does your brain hurt?! Does your -”
“I’m fine,” Zoro snaps, a little too sharp and Chopper recoils. Zoro drags in a breath, forces his shoulders to loosen a fraction. “I’m fine, sorry. Relax. I’ve had worse than his chicken legs.”
“Chicken?” Sanji screeches behind him, voice pitching up into outrage. “Chicken? I’ll show you chicken, you overgrown paperweight -”
There it is, the rhythm lurching back into place, rickety but familiar. Insults, screeching, the dull thunk of a boot hitting rail. Luffy’s wild applause against Usopp narrating his own emotional damage.
It’s a relief. It’s a cover.
Zoro stalks toward the far rail, rolling his neck like it’s just another cool-down, swords slung in his hands, training face locked in place.
His heart hasn’t slowed down. His skin still feels too tight on his bones, like he’s been wrapped in bandages one layer too many. There’s still the ghost of Sanji’s thigh against his hip, phantom weight clamped over his collarbones, the memory of that single, small shiver replaying in a loop.
He sets Wado sword on the rail, fingers clenching too hard on the hilt. The leather bites into his palm in a way he usually likes. Right now it just reminds him of how Sanji’s wrists felt under his grip.
He draws in one violent motion, the blade hissing through empty air, clean and fast, the familiar drag of steel through a practiced arc. The motion is a metronome, a ritual. It usually scrapes the static out of his head but today the static scrapes back.
All he can is Sanji’s leg locked around him. Sanji’s breath against his neck. Sanji saying make me like a challenge and an invitation and a stupid, reckless prayer all in one.
He swings harder. The next cut comes with too much force, edge whistling sharp enough that even he feels the warning in it. He reins it in, jaw locked, shoulders trembling with the effort to keep from just. Going back there and fighting above him. Seeking out that push, that bite, that impossible balance on one leg and the bright, vicious grin that comes with it.
He wants to win again, to pin him clean and hear him swear. He wants to lose on purpose, just to see what ridiculous angle those legs can bend into next, what else they can hook around.
He wants -
He hacks that thought off at the root with another savage cut, blade howling through empty space.
A few days later, when Sanji’s foot hooks around his throat again in some new, infuriating variation of that chokehold, Zoro doesn’t bother pretending he’s not looking.
He just hits harder.
x
me, who hates writing fight scenes….. continuing to write fight scenes….. ;-;
been on a real pre-timeskip lately!!

















