Marisa Ventura (JENNIFER LOPEZ) is a single mom who's trying to raise her 10-year-old son, Ty (TYLER GARCIA POSEY), as best as she can while holding down a job working as a maid at a swanky Manhattan hotel.
Working alongside fellow maid Stephanie Kehoe (MARISSA MATRONE), Marisa aspires to be a manager there one day, but is reluctant to file an application with her boss, Paula Burns (FRANCES CONROY), and the hotel's manager, John Bextrum (CHRIS EIGEMAN), when the position opens up.
After all, she's been trained, along with head butler Lionel Bloch (BOB HOSKINS) and the rest of the staff, that they should be invisible to the pampered guests, which includes socialite Caroline Lane (NATASHA RICHARDSON) and her friend Rachel Hoffberg (AMY SEDARIS). The maids wouldn't even dream of interacting with Chris Marshall (RALPH FIENNES), the dashing young politician who's in town with campaign manager Jerry Siegel (STANLEY TUCCI) while working on his Senate bid.
Yet, when Stephanie manages to convince Marisa to try on Caroline's expensive outfit that she's supposed to return to the store for her, Chris accidentally runs into her. Believing her to be a guest and mother to Ty who he's already met, Chris falls for both her beauty and her willingness to speak her mind. Not wanting to get fired for being caught in a guest's clothes, Marisa goes along with the ruse, even calling herself Caroline.
Much to Jerry's chagrin and the delight of the ever-present paparazzi, Chris takes an instant liking to Marisa and invites her to various events, completely unaware that "Caroline" is really Marisa. With mistaken identities crisscrossing paths, Marisa tries to tell Chris the truth, but for various reasons cannot. From that point on, she must decide whether leading her new fairy tale life is worth risking being found out by Chris or anyone else at the hotel.