The host, 38, introduced the segment, which also featured nine different sets and zero cuts in one take, by paraphrasing Julia Roberts in Notting Hill: "I'm just a boy, standing in front of a girl asking her to love him."
It kicked off with the Oscar winner, 34, standing in front of a classic New York City brownstone as she checked her phone and began singing "Holding Out for a Hero" from Footloose.
The location then moved to an elevator, where she bumped into Corden. He then started singing "Just One Look" in the classic meet-cute. As they stepped into the elevator and the door closed, the pair sang Selena Gomez's "Hands to Myself."
After the quick makeout session they walked over to a park setting where the Les Misérables star sang Sixpence None the Richer's "Kiss Me."
The next cut found them in the bathroom, brushing their teeth as they crooned Jason Mraz's "I'm Yours."
The Devil Wears Prada star — who previously went up against Corden in a rap battle — broke into Biz Markie's "Just a Friend" after she checked his phone, throwing it into the toilet.
The next scene found her clutching a glass of wine as she drunk-sang "All By Myself," Bridget Jones–style, with Corden taking up the song as she left the room.
Hathaway then sang "Leaving on a Jet Plane" as she sat in a taxi headed to the airport.
Corden, meanwhile, was still in his apartment, passed out in a chair, clutching Chinese takeout. The recognizable opening strains of "I'm Gonna Be (500 Miles)" played as he woke up and headed after the woman he loved.
He made his way to Hathaway's flight and got down on bended knee in the aisle, singing Al Green's "Let's Stay Together."
Watch the video above.
The Late Late Show with James Corden airs on CBS weeknights at 12:37 a.m.
Want stories like these delivered straight to your inbox? Sign up now for the Us Weekly newsletter!