Marc Borgmann, a young police officer-in-training, is on a riot-control course but struggles to keep up with his peers, especially in the physical aspects of the academy. He clashes with his roommate Kay Engel during a tense training exercise, but after a sincere apology they become friends. The pair take up jogging together, and during one run Kay kisses Marc after sharing a marijuana cigarette, though Kay later swears it was a joke. On another jog, they share a kiss again, and Kay gives him a handjob.
Kay is soon transferred into Marc's unit to fill a vacancy, which makes it hard for Marc to ignore him. Kay shows up with a colleague at a bowling alley where Marc and his longtime, pregnant girlfriend Bettina are spending time with the family. Marc tries to stay faithful and forget about Kay, but he returns to the jogging trail where Kay waits for him, and the two have sex in the rain. Bettina grows suspicious as Marc’s night-shift alibi falls apart, and Kay even gives him a key to his apartment, deepening the secret. Marc’s ability to perform for Bettina falters, which he blames on her pregnancy.
The situation escalates when Marc and Kay go to a gay bar, where Marc takes ecstasy. The next morning Bettina confronts him after finding recent calls to Kay on his phone. Bettina gives birth to their son, and Marc tries to cut Kay out of his life; Kay responds with a claim of love and they share a kiss that rekindles the tension between devotion and danger.
Later, Kay attacks Limpinski after a homophobic incident; Marc intervenes and is knocked aside. Kay visits him in the hospital and the two share a kiss that Marc’s mother unexpectedly witnesses, sparking a family confrontation. Marc’s parents urge him to stay away from Kay, but he confronts the situation and tells Kay to leave at a party.
Marc returns to Kay’s apartment to find his face bruised after another clash with Limpinski. He advises Kay to transfer to another unit, and Kay asks about the future of their relationship. Marc returns the apartment key and leaves. Bettina comes home with their son, but emotional distance remains; she discovers Marc has lied about working night shifts and asks him to leave. Marc visits Bettina at Frank’s house and confesses the affair, with Frank present to witness the fallout. D. B. Sweeney plays Frank.
Bettina returns with their son, and they attempt to salvage something, but the distance lingers. Marc later finds Kay’s apartment empty—Kay has moved out without notice. When Limpinski goads him about the affair, Marc taunts him, and the moment is witnessed by Frank. Disillusioned, Marc goes to the gay bar alone, initiates a sexual encounter with another man, but ultimately pulls away. Back at home, Marc and Bettina acknowledge they cannot continue, and the film ends with Marc back at the academy, jogging with his peers as in the opening scene—this time he pulls ahead and finishes the run alone.