Rosie Dunne and Alex Stewart have been best friends since they were little kids. The movie opens on Rosie sitting alone looking dejected at a table, while wedding guests mingle around her. It then cuts to the past, and Rosie and Alex are at a bar. They are celebrating Rosie's 18th birthday, and share a drunken, passionate kiss before Rosie falls off a stool and hits her head, knocking herself out. She wakes up the next morning with no recollection of the night before, but Alex doesn't realize she doesn't remember their kiss. Rosie tells Alex she wishes that night had never happened and doesn't want to talk about it ever again, which he takes as a sign of her rejection.
Later on Rosie and Alex attend a bonfire on a beach, where they discuss the upcoming school dance. Rosie reveals she had been asked by Greg, the "fittest guy in school", but she turned him down because she and Alex had already planned to go together. Meanwhile, Alex has set his sights on a blonde named Bethany, who Rosie says might be hard to get due to the fact that Alex is still a virgin. He laughs it off, confidently telling Rosie how Bethany had wanted to go to the dance with him. Rosie suggests he take Bethany, and she take Greg. Alex agrees. The day of the dance Alex breaks the news that "virgin boy is no longer" to Rosie, adding that he lost it to Bethany. She looks unhappy for a few moments, but brushes it aside. That night Alex drives Rosie to the hotel where the dance is held, where they split up; Alex with Bethany and Rosie with Greg. Each couple has a great time on the dance floor, though Rosie and Alex sneak each other longing glances. Later on Rosie and Greg head up to a room, where their night doesn't exactly go as planned when Greg's condom falls off and becomes stuck inside Rosie. After Greg ditches her she calls Alex, who is still downstairs dancing with Bethany. He leaves Bethany to drive Rosie to the hospital where a male nurse removes the condom for her, though not without some awkward tension.
A few months later Alex receives a scholarship to Harvard and Rosie gets accepted into a hotel management program at Boston University, so they plan to go to the United States together for college. However, Rosie visits a drugstore to find a solution for her recent nausea and the clerk, Ruby, suggest she take pregnancy test. After it comes back positive, she quickly realizes Greg is the dad. She decides not to tell Alex, because she knows he would stay home from Boston just to be there for her and she doesn't want him to have to throw his life away too. Rosie elects to have the baby and then give it up for adoption, so that she can still go to college in Boston and start a career, just a few months later than she had originally planned. Alex has to leave for the States without her, and they share a tearful goodbye in the airport.
At home in England, Rosie continues to live at home with her parents, preparing to give up the baby for adoption. However, once she gives birth, she realizes she wants to keep her baby (a daughter). She names her Katie, and becomes a full time mom. One day while out pushing Katie in a stroller Rosie runs into Bethany, who tells Alex about Rosie and her baby. Alex flies to England to confront Rosie, who explains she didn't tell Alex because she wanted him to go to Harvard. Alex forgives her and spends a few days with Rosie and Katie. Rosie explains that Greg moved to Ibiza as soon as he heard Rosie was pregnant and Alex asks to be Katie's godfather. Eventually Alex must go back to the US while Rosie stays in England.
Back in Boston, Alex is drinking alone at a bar when he approached by a blonde. She introduces herself as Sally and asks if Alex will buy her a drink; he agrees.
As the years pass, Rosie and Alex stay in touch by sending videos to each other. Sally and Alex are in a relationship and have moved in together; Rosie has become friends with Ruby, the clerk from the drugstore; and Katie is growing up. Rosie and Ruby are both maids at a local hotel even though Rose still dreams of opening her own hotel. One day Alex sends Rosie a ticket to Boston and she is excited, thinking maybe something will finally happen between them. As she arrives at the airport, she and Alex share a joyful reunion. Alex takes Rosie around the city, where they spend the day exploring and flirting. After, they head back to Alexs apartment, where Sally has been waiting for Alex to return. Rosie stays for a lavish dinner with Alex and Sally where it becomes obvious Alex and Rosie are much more alike than Alex and Sally. It is also revealed that Sally is pregnant, which shocks Rosie because Alex hadnt told her. After dinner the trio attends an art show, put on by Sallys artist friend Herb. Rosie leaves the art show early and Alex chases after her. Rosie is upset that they had spent the day together while his pregnant girlfriend was at home, which Alex says doesnt matter because the two of them were just having some fun. They bicker, and Rosie leaves.
In England, Rosie decides to reach out to Greg because she wants Katie to meet her dad. To her surprise, Greg actually shows up and asks Rosie to be a part of Katies life. She agrees, and the three of them start to do things as a family. Greg and Rosie get back together, and eventually get engaged. Alex is invited to their wedding, but does not show.
A few weeks later Rosie decides to call Alexs apartment, and Sally answers. She tells Rosie that she and Alex had broken up around the time of Rosies wedding, but then her water breaks. Before Sally hangs up Rosie hears her shouting to Herb, the artist from the show. Rosie then texts Alex and asks what happened with Sally. Turns out she had been cheating with Herb and the baby was not Alexs.
Rosies parents leave for a trip around the world and Rosie gets promoted to receptionist at the hotel. Bethany, now a successful model, catches up with Rosie one day while checking into the hotel. After hearing Bethany is traveling to Boston soon, Rosie suggests she look up Alex.
Rosies father dies suddenly while on the vacation, leaving Rosie heartbroken. Alex returns to England for the funeral, and comforts Rosie. Greg arrives, oblivious to Rosies pain, and pulls her away. Alex realizes he loves Rosie and knows he would treat her better than Greg does. As he flies back to England he mails her a letter professing his love and tells her if she doesnt feel the same he wont ever bring it up again. As it arrives at Rosies house, Greg receives it and locks it in a desk drawer before Rosie can see it.
Rosie decides to finally start following her dreams and begins to plan how to open her own hotel. By now Katie and Toby are teenagers and still as close as ever. Alex messages Rosie to ask one simple thing- if she is happy with Greg. After contemplating her answer, she responds that she, Greg and Katie are family, and she is happy with her family.
Greg calls Rosie from his work trip, at the hotel where they had their school dance so many years ago, to inform her he will be staying there longer than he had originally anticipated over the weekend. After Ruby checks their hotels database, they find out he had reserved the bridal suite. Rosie and Ruby confront Greg at the hotel, where he is with another woman. After Rosie hooks him in the jaw, she returns home to begin throwing out all of Gregs possessions. While doing her deep clean, she comes across the locked desk drawer and finds Alexs letter. She immediately video chats Alex, but Bethany answers. Alex joins her and they reveal that they are engaged and getting married the next week. They ask Rosie to be the best man, and she accepts, trying to hold back her tears. Rosie expresses her despair to Ruby, saying that she and Alex just might not be right for each other. Ruby talks some sense back into Rosie, and convinces her to show up early to the wedding and tell Alex how she feels before it is too late.
A week later, Rosie, Ruby, Katie, and Toby prepare to fly to America for the wedding. However, their flight is delayed and they arrive at the church just as Alex and Bethany are coming out. At the reception, Rosie gives a speech as the best man and recalls moments from her childhood with Alex, including the night of her 18th birthday which she cant remember. She then thanks Alex for being an amazing friend and the best thing that has ever happened to her. She promises that no matter what, she will always love him. After a pause, she quickly adds that she will love him like a sister loves a brother and a friend loves a friend. After the speech, guests begin to pair up to dance: Bethany and Alex, Katie and Toby, and Ruby and her new-found love, Phil. Toby leans in to kiss Katie but she shoves him off and runs out to the roof. Alex and Rosie, who had both witness the scene, follow her. Katie is shaken and tells them she will just ask Toby to forget what happened, but Alex warns her that if she rejects him now Toby will go the rest of his life, trying to find someone perfect but they will never be as good as her. It is clear Alex is not just talking about Tobys feelings. Katie still cant imagine that Toby would kiss her, saying it would be like if Rosie and Alex kissed.At this point Toby joins them on the roof, and Katie runs to him and pecks him on the lips. They head back to the party and Rosie and Alex are left alone. Alex tells Rosie the truth about what happened the night of her 18th birthday, saying he had only just realized she didnt know that day. She realizes the only reason Alex had taken Bethany to their high school dance all those years ago was because he thought Rosie didnt feel the same. Even though it is obvious the two still love each other, nothing can be done about it.
Rosie and Alex say goodbye at the airport and she, Katie, Toby, and Ruby return to England. There, Rosie buys a manor house and fixes it up to make it into her lodge. On the day of the grand opening, she hosts a party. Alex shows up out of nowhere, alone, with no bags or wife, requesting a room. Rosie takes him to a sea view suite and Alex turns to her, and asks her to the dance. Better late than never, Rosie replies, and with that, he sweeps her up in a passionate kiss.