Akcja rozgrywa się na skąpanej w słońcu, jakby wyciętej z wakacyjnych pocztówek, greckiej wysepce. Tutaj Donna (Meryl Streep) – była piosenkarka – prowadzi podupadający hotelik. Kiedyś żyła z pasją, pełna werwy i beztroski. Dziś odcina się od przeszłości, nie chce rozpamiętywać straconych szans. Skupia się na szczęściu córki Sophie (Amanda Seyfried), która ma wyjść za mąż. Dziewczyna nigdy nie poznała ojca. Dlatego, gdy odkrywa pamiętnik matki, w którym opisane są romanse Donny, postanawia zaprosić trzech potencjalnych kandydatów. I tak, w tajemnicy przed Donną, na wyspie stawiają się: podróżnik Bill (Stellan Skarsgard), bankowiec Harry (Colin Firth) i architekt Sam (Pierce Brosnan). Dla każdego z bohaterów będzie to okazja do podsumowania tego, co osiągnął i stracił. Powrócą wspomnienia, skrywane uczucia. W finale okaże się, że na nic nie jest za późno – właściwą drogę w życiu można wybrać tylko wtedy, gdy poznało się jego smak.
Katalizatorem emocji są piosenki. Kiedy Donna śpiewa "Money, Money, Money", jest to – mimo pastiszowego wykonania – wołanie zmęczonej codziennością kobiety 0 uśmiech losu. A gdy Streep wykonuje "The Winner Takes It All", przebój staje się wzruszającym rozrachunkiem z niespełnioną miłością.
Bywa, że aktorzy markują śpiew, ale nie wokalne popisy są w "Mamma Mia!" istotne. Liczy się naturalność, aktorska interpretacja przebojów. W tym Meryl Streep jest niezrównana. A przy okazji – tak jak reszta obsady – dobrze się bawi.