Kevin Schuler (Graham Rogers) seems to have it all. He's on his high school running team, as is his best friend, Bobby Sickle (Ty Parker). He's also madly in love with gruff Coach Jared's (Tim Roth) daughter, Ellie (Stefanie Scott).
Bobby borrows Kevin's shoes and takes his friend's place in a race, because he wants to beat Rye (Thomas Cocquerel), an arrogant runner from another school. Bobby runs his heart out and beats not only Rye, but sets a record.
As the teens are heading into the bus for the drive home, Kevin instead gets a ride home with his parents. Their car passes the bus and they don't see the crash. A tire blows on the bus just as it's passing a bridge over a river. The bus goes over the side and all 13 people on board — including Coach Jared, Ellie and Bobby — are killed.
With almost the entire senior class wiped out, the small high school doesn't have anything to offer Kevin. He's transferred to another school, which accepts him because they think it was Kevin, not Bobby, who set the record when he raced against Rye, and they want a good runner for their cross country team.
Kevin, still mourning Ellie and his friends, doesn't have the heart to compete at first. However, his new and eccentric coach (Billy Crudup) inspires him and Kevin finds that as he runs, he sees Ellie. He begins to run everywhere and the faster he runs, the more clearly he sees her, Bobby and the rest of his friends.
Still wearing Bobby's shoes, he begins to set records himself, but haunted by what has happened, he struggles to find a reason to go on.
Based on the book Life at These Speeds by Jeremy Jackson.