A foal is captured and brought to Devon to be auctioned off. Arthur Narracott bids on the foal, as he hopes to give it to his son Billy, but then his brother Ted, with whom he has a heated rivalry, appears with his son Albert. Ted, who is a drunk and known as the town coward for refusing to fight alongside his brother in Africa, attempts to one-up him by bidding the mortgage money, 39 guineas, on the foal. He wins, though his wife Rose is not pleased. Albert promises to raise the horse until he is ready to be sold. He names him Joey and they form a strong bond as Joey grows up.
Jealous at Albert, Billy convinces his father to get Ted drunk and make an outrageous bet with him - if Joey can be taught to plow within a week, Arthur will pay Ted the 39 guineas Joey was originally worth. If he cannot, Billy keeps Joey. Ted comes home late and whips Joey to make him obey, but Rose and Albert intervene. Albert goes through the difficult process of teaching Joey, and after a week, everyone is amazed at Joey's plowing and Ted wins the bet.
Just as the town celebrates, news of the outbreak of World War I reaches them. Ted sells Joey to the cavalry, breaking his word that he would always belong to Albert. Lieutenant James Nicholls, who originally bid alongside Albert for Joey and often sketched Albert and Joey riding together, promises that he will look after Joey personally. At the same time, Arthur enlists Billy to fight despite his protests, and gives him his grandfather's knife for protection. Joey and Topthorn, another army horse, are shipped to France. There, the British army are overwhelmed by the destructive technology of the Germans - machine guns, barbed wire, and tanks. During the first charge, Nicholls is shot and killed. Billy finds himself riding Joey into battle and is taken by German forces.
Nicholls's sketchbook is sent to Albert, who receives it on Christmas. Horrified by the fact that Joey is out there unprotected, Albert enlists in the army by lying about his age. He befriends a fellow soldier in the infantry, Private David Taylor, who writes letters home for Albert. Billy is brought along with the Germans to a French farm being used as a makeshift hospital. When a nerve-wracked Billy takes back his knife from a German officer and appears to be brandishing it, he is shot and killed. This, combined with almost accidentally shooting Emilie, the little girl who lives at the farm, pushes one of the Germans, Friedrich Muller, into realizing how much this war has twisted him. He shares his love of horses with Emilie, who reminds him of the daughter he left behind, and together they and her mother take care of Joey and Topthorn, who are being kept alive thanks to Joey being able to pull an ambulance for wounded soldiers.
When a shell takes out most of his comrades, Friedrich switches identities with one of them so he can desert the army and return home once the war has ended. This happy time is cut short when the farm is destroyed and Friedrich is discovered by the Germans, including the same man who killed Billy and he recognizes him. Friedrich allows Emilie and her mother to escape though he is caught. Joey and Topthorn are forced to join two other horses on the verge of death in pulling heavy artillery. Once enemies, Joey and Topthorn become friends as they help each other, until Topthorn dies from exhaustion.
As the Germans begin to understand the war from Friedrich's perspective as he mourns over Topthorn, they are interrupted by a tank storming through. Friedrich is killed by the tank as he tries to signal it to stop. Joey runs through the heated battle until he gets caught up in barbed wire in no man's land. The British and the Germans both see him, and, though unable to talk to each other, are able to work together to free him. They flip a coin to see who will take Joey, and the British win, parting on amicable terms with the Germans. Meanwhile, the infantry division that Albert and David are part of comes across Emilie, who is now alone and traumatized by what she has seen, and are ordered to take her to headquarters. On the way, Albert sees the dead horse with Billy's knife still in him, and, believing that the horse is Joey, is broken. Recognizing Joey's name, Emilie attempts to talk to Albert, but then David is shot and killed and Albert is blinded by tear gas.
In the hospital, Albert tells his story to a nurse just as Joey is brought to the camp by the soldiers. Just as Joey is about to be euthanized, Albert hears what is going on just in time and makes the same call to Joey that he did when he was a foal, to which he responds. Albert and Joey are reunited and they return home safe at the end of the war.