Tom (PATRICK DEMPSEY) is a happy and rich bachelor who enjoys being single and the no-strings-attached sex that comes with that lifestyle. In fact, the inventor has been doing the lothario thing at least since college which is when he mistakenly met Hannah (MICHELLE MONAGHAN), who he believed was her roommate waiting to have sex with him. Tom and Hannah didn't sleep together, and despite their different lifestyles, became fast friends and have remained that way for the past ten years. In fact, they're so close that her mother, Joan (KATHLEEN QUINLAN), and his father, Thomas Sr. (SYDNEY POLLACK), are separately surprised the two have never become a couple.
That platonic relationship is rocked, however, when Hannah returns from a six-week working stint in Scotland with a new boyfriend, Colin (KEVIN McKIDD). Not only are they dating, but they're engaged to be married in just two weeks. And the timing couldn't be any worse as Tom was just about to tell her that he had finally realized he was in love with her.
To add insult to injury, she's asked him to be her maid of honor, much to the dismay of Melissa (BUSY PHILLIPPS) who had a brief fling with him in the past and has hated him ever since. Even so, she and fellow bridesmaids Stephanie (WHITNEY CUMMINGS) and Hilary (EMILY NELSON) want to make sure Hannah's day is special. Meanwhile, Tom's basketball buddies, Felix (KADEEM HARDISON), Dennis (CHRIS MESSINA) and Gary (RICHMOND ARQUETTE) see his wedding role as the best inside way to break up the pending nuptials so that he can have Hannah all for himself.
From that point on, Tom finds himself torn between helping his best friend and finding the best time to tell her how he actually feels about her.