Ojciec Fiony, a także król Zasiedmiogórogrodu – Harold jest umierający, więc Shrek musi go zastąpić na pozycji króla. Jednak ten tego nie chce, dlatego musi odnaleźć innego dziedzica, którym okazuje się najlepiej być zaginiony kuzyn Fiony, Artur. Ogr wraz z Osłem i Kotem w Butach wyrusza na poszukiwania Artura. Tymczasem Fiona jest w ciąży, a Książę z Bajki wraz ze "złymi" postaciami z bajek przeprowadza w Zasiemdiogórogrodzie zamach stanu, bo chce zostać królem, a Fiona wraz z przyjaciółkami – księżniczkami, Siostrą Kopciuszka i Matką przeprowadzają ruch oporu. Tymczasem Artur nie chce wcale zostawać królem Zasiedmiogórogrodu. Shrek i przyjaciele proszą o pomoc w podróży Czarodzieja Merlina. Fiona i reszta zostaje porwana, a Shrek po powrocie do królestwa ma zostać zabity. Jednak dzięki odwadze księżniczek i talentowi aktorskiemu Shreka cały film kończy się szczęśliwie.