Brillant écrivain d'histoires d'amour, Melvin Udall
(Jack Nicholson) est un exécrable vieux garçon, ultra-maniaque, bourré de TOC, homophobe et misanthrope. Son voisin Simon Bishop
(Greg Kinnear), artiste homosexuel qu'il déteste, est cambriolé et sauvagement agressé par des complices de son modèle
(Skeet Ulrich). Frank Sachs
(Cuba Gooding Jr.), marchand d'art, contraint Udall de garder Verdell, le chien de Simon qu'il a maltraité quelques jours plus tôt. Il s'attache tant et si bien à cette petite boule de poils que, lorsque son maître rentre après plusieurs semaines défiguré sur un fauteuil roulant, le chien préfère Melvin. La seule sortie de Udall consiste à déjeuner systématiquement au même restaurant, à la même table, et servi toujours par Carol Connelly
(Helen Hunt #1). Lorsque celle-ci est absente à cause des crises d'allergies de son fils Spencer
(Jesse James), il choisit un bon médecin et assume tous les frais, afin que "sa" serveuse revienne. Ruiné par les frais hospitaliers, ayant perdu l'envie de peindre, Simon se défait de sa femme de ménage
(Lupe Ontiveros). Il sollicite alors Melvin pour sortir Verdell régulièrement. En pleine nuit, Carol débarque chez Melvin pour lui annoncer que, malgré sa générosité, elle ne couchera jamais avec lui. Franck demande à Melvin de conduire Simon à Baltimore, dans l'espoir que ses parents – d'avec qui il a coupé les ponts – lui prêtent de l'argent. Pour s'amender de son attitude ingrate, Carol accepte de les accompagner. Au terme des deux jours de l'aller-retour, l'artiste n'a pas vu ses parents mais a retrouvé le goût de dessiner grâce à la beauté de Carol. Par ailleurs, malgré tous ses efforts, Melvin a commis une maladresse qui a totalement fâché la jeune femme. Le meublé de Simon étant reloué, Melvin le recueille avec toutes ses œuvres. Touché par ce geste, Carol appelle Melvin. Sur l'insistance de son invité, il se précipite chez celle "qui lui a donné l'envie de devenir meilleur" afin de lui exprimer ses sentiments.
Nicholson est toujours aussi excellent dans ses rôles de méchants asociaux !