Melvin Udall écrit des best-sellers sentimentaux, il n'aime ni les Noirs, ni les Juifs, ni surtout son voisin "gay", Simon le peintre et son horrible chien Verdell. Dans le restaurant où il déjeune tous les jours, Melvin affiche ses manies et exige de n'être servi que par Carol, qui tolère mal son cynisme. Simon se fait cambrioler et agresser ; Melvin, chargé de garder Verdell, se prend d'affection pour l'animal, puis vient en aide à son maître déprimé et ruiné. Entre temps Carol a disparu ; Melvin la retrouve et finance le traitement médical de son petit garçon gravement malade. Il accepte encore de conduire Simon dans sa famille à Baltimore, et emmène Carol : l'expédition ne lui permet pas de déclarer sa flamme, mais elle rend l'inspiration et la joie de vivre à Simon. De retour à New York, Melvin recueille son voisin privé de toit et, sur son conseil, va avouer son amour à Carol.