ZoSan

ZoSan is the slash ship between Zoro and Sanji from the One Piece fandom.

Canon
Zoro and Sanji didn't really like each other at the beginning. They fought and quarreled a lot, were annoyed by just each others personalities. But with time they grew closer and although they still don't agree in many things, they care about each other, even if they wouldn't say that out loud.

Baratie Arc
This is the arc, where Zoro and Sanji meet for the first time, though they don't share a longer conversation yet.

Sanji, back then, was an assistant chef in the Baratie, an ocean-going restaurant. Luffy, Zoro, Nami and Usopp needed to stay there for a while, because of an accidental, extensive damage Luffy caused to the restaurant's ship.

After some time there, Zoro and Sanji share their first, short conversation. Zoro states that his goal is Grand Line too from now on, since he just learned that Hawk Eyes - the strongest swordsman in the world - is there too (and Zoro aspires to become the strongest swordsman in the world himself). Sanji comments it saying that Luffy and his crew are a bunch of morons, which probably are the ones dying first. Zoro says that he's right, but he didn't have to say the part about 'morons'. He says that from the time he decided to become the strongest swordsman in the world his life and death doesn't really matter to him and that he himself is the only person who can call him a moron. Then their conversation ends.

Soon afterwards the Baratie is attacked by Don Krieg's crew, which was also chased by Hawk Eyes - the same person Zoro wanted to find and take him on. After Zoro is beaten by Hawk Eyes and lands in the sea, Sanji recalls his and Zoro's previous conversation. Sanji calls Zoro a 'shitty idiot' in his thoughts, claiming that 'he totally lost his mind and he could just give up his dreams, he didn't have to die for them'.

Arlong Park Arc
During the battle with Arlong's men, Zoro fights with an octopus fish-man called Hatchan. Seemingly defeated with one strike, Sanji looks over to Zoro. He is punched by a ray fish-man named Kuroobi as he was distracted by Zoro.

Some time later in the battle, after Zoro has defeated Hatchan, Kuroobi attempts to finish off Zoro. Sanji, who was also seemingly defeated, comes to Zoro's rescue and kicks Kuroobi away.

After both Hatchan and Kuroobi seem to be defeated, Arlong himself enters the scene. Zoro tells Sanji that he can give him 30 seconds to grab Luffy. Hatchan, who was apparently not defeated, dives after Sanji. Zoro doesn't seemed to be worried, as Hatchan is covered in wounds and moving will reopen them. Sure enough, Hatchan's wounds reopen and Sanji makes a successful rescue.

In the aftermath, Sanji and Zoro can be seen sitting across from each other in an alley as Cocoyashi village celebrates the downfall of Arlong. They make small talk about each others wounds.

Filler Episodes
In the filler arc, the Apis arc, Sanji and Zoro are seen washing the dishes together. Here, Sanji uses Zoro's name, and neither of them bicker.

Reverse Mountain Arc
When the crew meets Crocus, Sanji attempts to communicate with him. Crocus ignores Sanji, causing him to get frustrated. Zoro calms him down and talks to Crocus instead.

Little Garden Arc
Upon arriving to “Little Garden”, Zoro announces he will take a walk after Luffy, Vivi and Karoo decide to explore the island. Sanji asks Zoro if he can bring back any edible meat, to which he responds with a smart remark challenging Sanji to see if he can get anything either. This annoys Sanji, and he enters the island exclaiming he’ll find kilos. Zoro declares they’ll compete in tons.

Eventually they re-meet with their catches. This ends in bickering and going back into the forest.

Filler Episodes
After the crew have left Alabasta and VIvi, they began sailing around the Grand Line again. While sailing, Nami spots an island. She yells for everyone to wake up. Sanji, hearing her voice, tries to ask for a morning kiss, but ends up nearly kissing Zoro as they are both half asleep. Before they wake up, it is shown that they had fallen asleep on a rug next to each other.

Skypiea Arc
In Upper Yard near the Sacrificial Altar, the Straw Hats decide to make camp. While cooking, Sanji forces Zoro to use his swords to carry a boulder to make stew. During dinner, Sanji is seen tossing Zoro a bowl of food, then sitting next to him.

Later, when the crew decides to split up in Upper Yard, Zoro gets lost. He decides to eat lunch, and speeds up his eating as a southbird has eyed the meal, which was made by Sanji. The southbird continues attempting to eat it and Zoro decides to fight it.

During Enel's plan to return Upper Yard to the Blue Sea, Zoro is seen sitting next to and watching over Sanji, who had been electrocuted by Enel.

After Zoro tells Chopper to treat WIper's wounds instead of his own, Sanji asks him why they should do that since they don't owe him anything. Zoro responds saying he doesn't understand his choice either but Wiper was fighting to the death. Sanji asks if it's sympathy, to which Zoro doesn't have an answer. A little afterwards, Zoro, Usopp, and Sanji are seen talking about the City of Gold together.

Filler Episodes
In the filler arc, the G-8 arc, the marines launch tear gas at Sanji, Zoro, Luffy and Usopp. Sanji is hindered immensely however Zoro is unaffected. Zoro makes a witty comment about this. After Luffy uses his whip attack, snagging Sanji and Zoro in it, Sanji yells at Luffy asking what he's doing. Then he turns to Zoro, calling him a "natural treasure" (referring to Zoro's "marimo" nickname) and asking him angrily about what he said before. They fight, as usual.

Long Ring Long Land Arc
Zoro and Sanji, surprisingly, hold conversations without arguing before the crew lands at a long vast plain for an island.

While discussing the Davy Back Fight, Zoro and Sanji both agree that the one thing they'd rather have than their life would be their pride.

In the Davy Back Fight rounds, Sanji and Zoro are grouped along with Chopper in the second round, Groggy Ring. They warn each other that either of them better not hinder the other.

During the Donut Race, when Zoro sees Sanji leaving the festival boat to go after Nami and Robin, Zoro leaves the boat as well to go after them. Upon seeing Sanji and Luffy race ahead, Zoro asks Chopper if their boat can go any faster.

After Chopper has been taken as a prize, Zoro and Sanji head out to complete the second round. They both insult each other while walking, and Nami wonders if they can actually work as a team or not. Zoro immediately points to Sanji when asked who will be the ball for the Groggy Ring game. Sanji protests against being the ball, so Zoro pretends to compliment him so he'll wear it. It doesn't work. Instead they seem to play rock-paper-scissors to decide, but that leads into an argument. Nami compliments Sanji to try and get them to work together, but Zoro responds by saying he looked like a prince, specifically the Prince of Idiots. They start physically fighting. Zoro is asked to remove his swords, as they aren't allowed in the game. He doesn't care that much, but Sanji asks if that's okay, because a swordsman with no swords would just be... a sand bag. They spar. Again.

The game finally starts, and Sanji aims for Botan. Botan was unfortunately a mudfish, so his skin was slippery. Zoro yells at him, calling him an idiot. Botan pushes him off, sending Sanji flying. Zoro chases after him, telling him that if he lands in the goal he'll kill him. Sanji yells back saying it was his fault for just standing there and talking. The game progresses even worse, and when it seems like Sanji will be scored, Zoro calls Sanji a "curly eyebrow idiot" and decides to throw Pickles, one of the players. Sanji, who is in the clutches of Bonbon, decides to counterattack, saying he can't keep letting Zoro get the best of him and he won't get his cutscene. He kicks away, letting Bonbon and Pickles collide. The enemy team fails to score.

Zoro and Sanji start arguing about who messed up over what, although they successfully stopped the other team from scoring. The game is still going, yet they decide to insult each other. Botan moves on his own, causing Zoro and Sanji to run as there were spikes on his shoes. The two finally decide to counterattack, however they both land on his arms. This causes the other team to create their counterattack to the counterattack, beating both of them badly. Lying on the playing field, battered and bloody, Zoro asks Sanji to give him 10 seconds. Sanji responds by saying that's just enough.

The opposing team brings out weapons, a clear violation of the rules. The referee, however, decides not to look. Sanji and Zoro don't seem to mind, as Sanji almost immediately attacks Bonbon, taking him out. Pickles rushes in to attack Sanji, but Zoro steps in his way and sends him flying into the giant-fishman. Botan is sent lurching backwards, letting Sanji kick him upwards. As Botan is dazed, Zoro aims for him. Pickles tries to stand in Zoro's way, but is easily kicked out by Sanji. Pickles lands on the referee. Zoro continues running to Botan and Sanji, and as he nears him, Sanji extends his leg, allowing Zoro to step on it. Once Zoro steps on, Sanji kicks him upwards, allowing Zoro to score Botan in the net.

Afterwards, when the Straw Hats are discussing about who to take back, Zoro and Sanji are asked about their injuries. Zoro says it's because a "certain idiot" was holding him back. Sanji takes offense, and they fight again.

During the third round of the Davy Back fight, Sanji decides who will play what rounds of the game. Zoro butts in, asking why Sanji gets to decide that. Sanji responds by stating he is the coach and Zoro is the manager. Zoro doesn't like that notion as he tells Sanji to not boss him around. Sanji retorts, saying he can't be the coach because of all the marimo seeping into his head. Zoro fights back, insulting Sanji by saying his eyebrows are funnier than he himself as they look like coiled feces. Sanji seems to be more sad than annoyed at the insult. They fight in the background as usual.

While Usopp is racing Chiqicheetah, Sanji and Zoro are on the sidelines. Zoro tells the "idiot coach" that if they don't do something about Chiqicheetah they'll lose. Sanji realizes something and yells for the "old man with the horse", asking where the kiwi is. The "old man with the horse" tells him the location, and Sanji asks "greenboy" to get it. Zoro retorts, asking if that was any way to ask for a favour. Sanji yells back by saying it could be the way to stop Chiqicheetah. Zoro raises an eyebrow to this, but agrees, taking Sherry the horse to the location. He realizes he won't be back with the kiwi in time, so instead Zoro cuts down the tree altogether.

In-between Filler Arcs
Since Luffy agreed to another Davy Back Fight with 3 rounds, the Straw Hats have to play a variation of dodgeball for the first round. Zoro and Sanji both knock out 9 players apiece, but Sanji seems displeased to have the same amount as Zoro.

During the last round of the rematch, Sanji is looking for Nami in the audience. As he is calling out to her, Zoro trips him to get his attention. When Sanji looks up, he sees that Nami and Zoro are together. Sanji gets annoyed at being tripped, and he and Zoro fight.

After Sanji's memory returns, Zoro (seemingly still controlled by the seahorse) walks up to the group. Sanji, thinking he wants to fight, attacks him. Zoro dodges, asking why he always had to get in the way. Sanji realizes Zoro's memory has returned and that he is going after the seahorse, not him. Luffy runs up behind them and launches all three of them across the water, and when Sanji and Zoro recover, they start bickering again. Zoro smacks Sanji using Luffy.

Zoro, still in the water after Luffy defeats the seahorse, is offered a helping hand by Sanji as he'll "catch a cold".

Up against Foxy, Zoro pushes Nami away from the Noro-noro beam. Sanji, enraged that Zoro pushed a girl, runs towards him. He and Zoro get caught in the beam, face to face. It is unclear if they kiss or come near to it.

Water 7 Arc
When Sanji and Usopp fight over Luffy's decision to fight Aokiji, Zoro sides with Sanji. He says it doesn't matter if Luffy was in a duel or it was a passing whim, as long as the crew are able to react to what happens next.

After bringing Nami her snack, Sanji accidentally wakes up Zoro. Zoro complains about them being too loud, and Sanji calls him a "cactus-head" in return. Zoro retorts with calling him a "dartboard" because of his eyebrows.

While docked at the back of Water 7, Robin and Chopper leave the ship, leaving only Sanji and Zoro. Sanji, realizing Robin isn't on the ship, asks Zoro if he knows where she went. He tells him that she and Chopper left a while ago. Both of them seem displeased that it'll be just the two of them on the ship as they can't seem to get along. Sanji announces that he'll go shopping instead, and that Zoro better do a good job of watching the ship. Zoro falls asleep in response. Sanji steps off the ship, telling him he'll leave it with him. He walks off.

Sanji gets lost in Water 7, commenting he's "like a certain swordsman".

Zoro tells Sanji and Chopper that the Merry can't be fixed when they return. The two seemed confused, but Zoro tells them that while humans get stronger on the sea, ship's wounds pile up and can't be fixed.

Standing on the ruins of the Franky House, Sanji and Zoro talk about how they really didn't know where the money was. Sanji tells him there's no point in just standing around and talking. They decide to go back to the ship. Back at the ship, Zoro tells Usopp to think before acting. Sanji yells at him saying that's not something he should tell others.

After Usopp decides to leave the crew, Sanji confronts Zoro, asking if the Franky Family came to the ship, and why he didn't deal with them then. Zoro fights back, saying Sanji should've beaten them instead of shopping. Sanji retorts by saying as a cook he needs to buy ingredients himself. Nami stops them, saying there's been enough yelling for today.

The day after Luffy defeats Usopp, Sanji is seen climbing a set of stairs to the roof of a building, presumably a hotel the Straw Hats checked into. Seeing Zoro and Chopper on the roof, he walks up to them and says they've rented a room, but nobody's in it. When everyone leaves to look for Robin and check on Iceburg, Sanji asks what Zoro will do. Zoro says he'll sit back and observe. Sanji's face of slight concern turns into confusion and surprise.

Luffy, Nami, Zoro and Chopper are on the Rocketman, on their way to catch up to Sanji, who is on the sea train. Zoro, using a Den Den Mushi, tells Sanji to stay put until they catch up. Luffy tells Zoro there's no use in telling him to stay put, and Sanji asks if Zoro's worried about him. Zoro responds by saying there's no way he is.

Enies Lobby Arc
As the Rocketman charges to the front, the main gate closes. Zoro tells Kokoro that there's a change in plan, and to let everyone know they should grab hold of something. Sanji sticks his head out of the train's window, asking the "stupid swordsman" why the plan has changed. Zoro answers him, saying the main gate has closed. When the train flies over the gate, they ask if Zoro had a plan to land. Zoro says to "leave it"—making Sanji smile—"to fate". As the Rocketman lands, Sanji and Zoro immediately takes out the enemies around them in sync. Zoro asks Sanji if they should've greeted them, to which Sanji says there's no need.

One of the marines recognizes Zoro, calling him Luffy's "underling". Sanji chuckles at Zoro being called an underling, so Zoro insults him back by saying he was worse off as "Pirate A". Sanji gets pissed, so Zoro asks if he prefers "B". Sanji retorts by saying if he had a bounty it'd be twice as much as Zoro's. Zoro decides on "C". After the marines attack the Rocketman, Sanji is about to rush in when Zoro, calling him "Pirate A", tells him Nami isn't going to die from it and that he's only "Pirate A" because he doesn't get it. This is a nod to the fact that Sanji serves women because he believes they are fragile and need it while Zoro treats women as equally as men, especially because of his childhood friend Kuina. Sanji calls Zoro a marimo and gets hit in the head by metal debris.

While running to Luffy, Zoro is in the lead. Sanji tells him it's not good if he's the one leading, and Zoro asks why. Nami says it's okay since they're just heading straight.

Heading to the courthouse, Gomorrah nearly hits a dead end. The Franky Family is about to despair when Zoro and Sanji ask each other if they see a dead end. Neither of them saw one as they destroyed it themselves.

On the rooftop of the courthouse, Zoro climbs his way up to the top after blasting a hole using Tatsumaki (tornado). Sanji kicks his way up immediately afterwards, thinking he's the first. After spotting Zoro, Sanji asks why he was there. Zoro tells him he's late and asks if he got lost. Sanji laughs and asks him where he learned the word "lost", a reference to how often Zoro gets lost.

After defeating Kaku, Sanji is seen running towards Zoro, asking if he got the key. Zoro tells him he just got it, and Sanji slows to a walk. He comments on how Zoro overdid it, making the tower slide again. Zoro says it doesn’t really matter and throws him the key. With that they have all the keys needed, so the two decide to head to Robin.

Later, fighting the marines on the bridge, Sanji disappears. Zoro says something along the lines of "The one time I want him around he isn't even here!".

Zoro tells the crew to stop with the sentimental stuff after Robin thanks them for saving her. Sanji and Chopper immediately pounce on him, telling him to apologize. Zoro notices Chopper can move again, and Chopper seems happy. He then transforms into his more muscular form and puts Zoro in a hold. Sanji, acting like a referee, asks Zoro if he gives up. Zoro says no. Later, as the Merry Go is being bombarded by cannonballs, Luffy complains about wanting to help, although he's heavily injured and can't move. Sanji and Zoro decide to stretch him out like a sheet and use him to reflect the cannonballs. Usopp, watching them, asks if they're monsters. Both Sanji and Zoro make a peace sign and say yes.

As Luffy talks with Koby, Sanji asks Zoro if it's really okay not to talk with Koby too. Zoro agrees and says it'd bring back memories, but the one Koby was indebted to was Luffy, not him. Later at the pool, Sanji makes barbecue snacks for Nami, but the rest of the crew takes them all. Sanji starts crying as they were meant for Nami. Zoro asks him why he's crying, and Sanji yells for him to shut up as he doesn't know how he feels.

Post Enies Lobby Arc (& Filler Episodes)
Zoro, who has been forced into a babysitting job and a very ugly crop top, spots Sanji on the streets. He ducks into an alleyway to hide from him. Sanji starts coming his way, so he runs off, inevitably getting lost. By the miracle of filler episodes, Zoro makes his way back to Auntie, who calls him a broccoli head. Zoro snaps back, saying it’s a marimo (a nod to Sanji’s nickname for him).

At dinner (in another standalone filler episode), Sanji makes spaghetti using the Aqua Laguna salt. Zoro finishes his portion and raises his plate, asking for seconds. Sanji yells back, telling him to do it himself

Upon finding that the next island is Fishman Island, Luffy asks if Nami will be okay because of the events in Cocoyashi village. Zoro comments on how they were pirates, and Sanji, who is spinning in glee, says that he does somehow get it as stupid as he seems. Sanji’s voice is about as cheerful as he is when he sees young attractive women.

Sanji complains about how his wanted poster has a poorly drawn rendition of himself. Zoro comments on how it looks just like him. Sanji gets up in Zoro’s face and speaks incoherently. As the crew leaves, Sanji is kneeling on the floor. Chopper says to wait because he won’t move, so Zoro tells him to just leave him. Sanji asks for them to wait after hearing Zoro.

Thriller Bark Arc
After hearing Nami's scream, Sanji runs to the direction of the sound. Zoro walks behind him and comments how he can't see anything through the fog. Sanji, most likely surprised, whips his head at him. Later, when the crew is being poked at by ghosts, Sanji attempts to leave the ship. Instead, he’s thrown back and lands face first next to Zoro. He comments on how Sanji said “geh”. Sanji retorts, saying he should try the same thing. Later, Zoro tells “Geh” to raise the anchor. This obviously pisses off Sanji. Zoro continues to call Sanji "geh".

A surprising scene—both Sanji and Zoro are in agreement—is when Luffy captures the "old man tree" and the unicorn and nearly asks them to be his crewmates. Both of them are against the notion of them being in the crew.

Sanji teases Zoro about his dispiritedness after he recovers from the soul passing through his body. He pokes fun especially at Zoro apologizing for being born. This is the first time that Sanji's teasing has caused Zoro to explicitly turn red.

While heading to the mansion, Zoro warns the others to be on guard, as someone strong could appear. Sanji asks if the "octopus swordsman" is actually scared of the forest. Zoro tells Sanji to not put him on his level, calling him a "geh cook". Sanji retorts by calling him a "lost marimo". They butt heads and Zoro calls him a "curly kid".

In the mansion upon realizing Sanji is missing, Zoro says they've lost a pitiful man, as if he were at Sanji's funeral. He does so with a perfectly straight face. Later, when Zoro himself is taken, there is a shot of his and Sanji's unconscious bodies together.

Usopp encourages Sanji to save Nami by telling him about how the invisible man ogled her in the bath. Sanji literally lights on fire, so Zoro asks Usopp not to fire him up any more or he might transform into something. The next time Sanji lights on fire, he jumps from an extremely tall height. Zoro asks Franky if Sanji will be okay, since it was a far jump. Franky reassures Zoro and tells him that adrenaline kicks will cancel all sense of pain until later.

Within the rubble caused by Oars (the zombie holding Luffy's shadow), Sanji is struggling to get up. Zoro, on the roof, stares down at him commenting one what that "idiot-cook" is doing. As Oars grabs onto Sanji, Zoro openly expresses his worry of the possibility Sanji will die. He even yells out for Oars to stop his attack.

As the Straw Hats retaliate their captain's shadow, Zoro takes one of Franky's weapons as his own. He yells at "curly" to kick him up, but Sanji refuses to. Zoro taunts him in response, asking if he won't because he can't. Sanji kicks him up, saying he can. After, Sanji basks in the glory of Pirates Docking 3 in an Usopp like fashion. Zoro comments on it while he isn't listening.

Sanji kicks at Kuma’s face to get him away from Zoro, saying that’s how far Kuma will get. Zoro gets annoyed to have been saved by Sanji, but watches him fall and cradle his leg. Zoro’s face shifts from annoyance to concern.

Upon watching Zoro offer his life in exchange for Luffy’s, Sanji walks over to Zoro asking what dying would do for his ambition. In turn, he offers his own life instead of Zoro’s. Both Sanji and Zoro can barely move. Sanji tells Kuma to take his life already. He asks Zoro to tell everyone have a nice journey, and they,l unfortunately have to find another cook. Zoro knocks out Sanji instead, against Sanji’s wishes as he grabs his shoulder before blacking out, his hand sliding down Zoro’s arm. Zoro knocking out Sanji implies he’ll offer his life for both Luffy and Sanji.

After Sanji wakes up, he immediately looks around for Zoro, only finding his swords. He runs off, saying there’s no way he’d be in one piece. He finds Zoro standing upright covered and surrounded in blood. Sanji frantically asks Zoro what happened, to which Zoro responds with “nothing”.

During their visit to Zoro, two of Lola’s pirates say they were awake when Zoro offered his life. Sanji brings both of them outside, telling them not to tell, and asking what happened after he fainted. The two pirates explain how Zoro took Luffy’s pain. Sanji comments on how reckless he was, and says he definitely didn’t do it for praise.

Fanon
ZoSan is the one of the most popular ships in the One Piece fandom and at the same time the most popular slash ship in the fandom. It's a rival ship to SaNa. A big part of the One Piece fandom that enjoys Zoro x Sanji pairing usually ships ZoSan alongside with LuNa and Frobin. ZoSan fans on Tumblr are alive and well, still creating content for other fans.

Trivia

 * Zoro has never called Sanji by name in the manga, and has only called him by name in the anime fillers.
 * Zoro often insults Sanji only when he is swooning over Nami and Robin.
 * Although they seem to hate each other, they do have a sense of camaraderie and often fight alongside each other perfectly with little to no communication beforehand. This is also shown in their "idiotic" moments together, despite their composed impressions.
 * Oda has stated that if Sanji were to die, Zoro would pick up Sanji's smoking habit out of commemoration to him.
 * Even without memories, the two simply can't get along, as shown in the Thriller Bark arc.
 * In the special filler episode 303, Sanji and Zoro can be seen sharing a meal together, much more peaceful than their canon counterparts.
 * The chapter 107 colour spread has Sanji sitting on a bench with his foot on a sleeping Zoro.
 * The chapter 221 colour spread has Sanji and Zoro sitting next to each other on a bench, asleep.
 * The chapter 269 colour spread has Zoro pushing Sanji away from the zither and Sanji laughing
 * The chapter 274 colour spread has Sanji and Zoro in the back of a carriage together.
 * The chapter 287 colour spread has Zoro holding his bowl out to Sanji for seconds.
 * The chapter 357 colour spread has Sanji and Zoro sitting next to each other, with what seems like Sanji talking to Zoro.
 * The chapter 364 colour spread has Sanji and Zoro in a small boat together, holding the weapons of their original designs.
 * The chapter 391 colour spread has Sanji yelling at Usopp and Zoro to make a fire for his cooking.
 * The chapter 878 colour spread has Zoro spitting watermelon seeds at Sanji while Sanji uses a cat as a shield against the seeds.
 * The chapter 949 colour spread has Zoro floating while in an awkward position, his arm is outstretched to where Sanji is looking at fish. There are fan edits of them holding hands because of this.
 * The chapter 1011 colour spread has Sanji holding a cinnamon stick while yelling at Zoro, who is eating a cinnamon stick.
 * The chapter 1019 colour spread has Sanji jumping up to Nami and Robin, however one should note that he is jumping from a whale shark with Zoro and their meals on it.

Fandom
FAN FICTION

TUMBLR

PIXIV
 * Sanji/Zoro on Pixiv