Lucas Ray and his friend Olivia, two residents of Denver, Colorado, find a puppy in a construction site along with many kittens and a mother cat. He names the dog Bella and takes her home to live with him and his mother, Terri Ray. Over the years, Lucas plays with and takes care of Bella. However, Lucas also continues to feed the cats at the old house, putting himself in the crosshairs of Günter Beckenbauer, the man who intends to demolish the house. He even calls the city about the cats who live there, which delays the demolition. Vengeful, Günter notifies animal control that Bella is a pitbull (despite not looking like one), because in Denver, pitbulls are illegal, due to being a dangerous breed. That evening, an overzealous animal control officer named Chuck comes by to warn Lucas that if he finds Bella on the street, he will impound her.
The next day, when Bella gets out to chase a squirrel, Lucas catches up to her and prepares to take her home, but Chuck confiscates Bella and takes her into the local animal shelter. Lucas picks Bella up, pays a fine, and is allowed to take her home, but he is warned that if Bella is captured again, she will be euthanized. To avoid this, Lucas sends Bella to live with Olivia’s aunt and uncle in Farmington, New Mexico, until he and his mother can find another home outside of Denver’s urban limits. However, Bella misses Lucas so much that she leaves Farmington and begins a 400-mile journey home, which will take more than two years to complete. During Bella’s journey, she befriends a cougar cub, whom she names “Big Kitten.” Bella and Big Kitten encounter many ordeals together, including being hunted by a pack of coyotes, but a group of men help Bella and frighten the coyotes away. The three men give Bella food at their campsite and upon learning who her owner is, try to call Lucas, only to be scared away by the sudden arrival of Big Kitten. During the winter, Bella helps rescue a man buried in an avalanche. Eventually, she reaches a small town, where she is temporarily taken in by a homeless and mentally ill veteran named Axel until he soon dies of a drug overdose. Back in the wilderness, Bella is attacked by coyotes again, but Big Kitten, now fully grown, returns and intervenes, successfully fighting off the coyotes. At each place Bella goes, she learns that each of her new friends has its own home, and how she must keep moving to get back to her family.
After encountering further challenges, Bella finally makes it back to Denver, and she bids Big Kitten farewell before they part ways. She reaches the city’s VA hospital, where she joyfully reunites with Lucas, Terri, and Olivia. Lucas prepares to take Bella to the vet to treat an injury Bella received due to being struck by a car, but when Lucas, Terri, and Lucas’s friends bring Bella outside, Chuck arrives with several police officers, including police captain Mica. Chuck claims that he needs to confiscate Bella again, with the threat to have Lucas and anyone who interferes arrested otherwise. Captain Mica states that he enforces the law, which states that Bella must be impounded, but Lucas and Terri stand up for Bella and explain that there is no reason to confiscate Bella as the VA hospital is federal property, and thus it is not technically part of Denver. Captain Mica allows Lucas to keep Bella as he has no jurisdiction. Chuck threatens to pull Lucas over if he sees Bella leave the premises, but Captain Mica admonishes Chuck and pulls him from public field duty for his over-zealousness and the number of complaints against him, then orders the police officers not to pull anybody over just for a dog. Lucas and Olivia are happy to see Bella again and finally manage to move into a house in Golden, where they allow pitbulls. Meanwhile Big Kitten is revealed to be a mother herself now and she and her cub watch over the city of Denver.