In Mahabharata, Krishna is Arjuna’s sarathi or charioteer. Basically, Krishna is the mind and Arjuna is the action. One is incomplete without the other.
But why Krishna and Arjuna fight with each other? There is a Telegu play about this called Gayopakhyanam. This story is not found in the Sanskrit version of Mahabharata.
Once a Gandharva King named Gaya was moving across the skies over Dwarka. Suddenly he spits the pan down his plane. By chance, his spit falls on Krishna’s head.
He became very angry. In the rage, he vowed to behead whoever has disgraced him. Krishan started to follow him on his Chariot.
Gaya asks for help:
Scared Gaya goes to Indraprastha and pleaded for help from Subhadra (Krishna’s sister). He said, “Please save me. I have accidentally committed a crime and an angry Kshatriya is going to kill me.”
Subhadra out of compassion said, “Don’t worry. Nobody is going to kill you. My husband Arjuna is the greatest warrior on this earth. He is going to protect you.” After hearing this, Gaya came to ease.
After some time, Krishna reached Indraprastha. He hailed Gaya to come out. Subhadra then realized that the person who ensued Gaya is his own brother.
But now she has committed to Gaya that his husband will protect his life. She said to Krishna, “Arjuna has pledged to protect Gaya’s life. You cannot kill him.”
Krishna said, “I am determined to behead Gaya. Nobody can save him from me.”
Arjuna and Krishna face to face:
Now Krishna with Sudarshana Chakra (spinning disk-like weapon) and Arjuna with Gandiva (bow of Arjuna) are face to face. They are ready to fight with each other. Both said, “It is our fundamental duty to preserve the honor of our vows.”
Everyone including Devtas is very tensed and worried. Devtas goes to Lord Brahma and Lord Shiva for help and asks them to intervene in this matter.
Shiva and Brahma appear between Krishna and Arjuna. Brahma requests him to step back and let Krishna beheads Gaya. He said, “I assure you to give life back to Gaya so that you can keep your promise.”
He steps back understanding the situation. Krishna beheads Gaya with his Sudarshana Chakra. Afterward as promised, Brahma gives back life to Gaya.
Gaya thanks, Arjuna as he kept his promise. He also apologizes to Krishna for his horrendous mistake.
Another version of the story:
In this version, Gaya is a great devotee of Krishna. When Gaya spits pan down, it falls into the hands of Krishna who is offering prayers to Surya (Sun god). Krishna gets angry and vows to kill Gaya. He cannot take his vow back even after knowing that Gaya is a great devotee of him.
Narada advises Gaya to seek help from Arjuna but not to tell him that it is Krishna who is going to kill Gaya. Arjuna promises to protect him. But when he came to know about Krishna, he is shocked. But he kept his words and ready to face Krishna.
Everyone from Subhadra, Narada, and Rukmini tried to intervene but failed. Finally, when they are almost about to hit each other, Lord Shiva appears between them and prevented a possible disaster to the world.
Then Krishna explains to Arjuna that it was a test for him before the impending Mahabharata war.