Fiona forblir i varetekt fordi, som Rumleskaft påpeker, er hun ikke "et ekte troll" (bare om natten, ikke om dagen). Shrek og Fiona blir sendt for å bli mat for dragen, men Esel, Pus med støvler og flere troll stormer slottet til Rumleskaft, slik at Shrek og Fiona unnslipper dragen og de tar Rumleskaft til fange. Tiden renner ut for Shrek som begynner å forsvinne. Men Fiona, etter å ha forelsket seg i ham, kysser ham like før han forsvinner. Dermed blir kontrakten annullere, og Shrek kommer tilbake til sin egen verden like før han opprinnelig begynte å krangle med Fiona under festen. Shrek omfavner sine venner og familie med en nyvunnet takknemlighet for familien sin, og de lever lykkelig alle sine dager.