Question: why do sanji and luffy fight?
Answer: Sanji had to protect the crew and his family in Baratie. His biological family was watching him and he was also under threat from Big Mom. Initially, Sanji tried to push Luffy away with his harsh words but, given Luffy's personality, it escalated into a fight. ... This was basically the reason why Sanji defeated Luffy.