Träsktrollet Shrek vill leva i lugn och ro i sitt träsk. Han skrämmer lätt bort alla inkräktare, ända tills hans hus och trädgård en dag invaderas av en samling ytterst påfrestande sagofigurer. Stora stygga vargar, tre små grisar, en träpojke med en växande näsa och ett antal goda feer är några av dem. Shrek inser att de har blivit utkörda ur den elake lord Farquaads rike. För att sagofigurerna ska få komma hem – och han själv ska få lugn och ro – gör han ett avtal med Farquaad. Tillsammans med Åsnan blir han skickad för att rädda den inlåsta prinsessan Fiona och ta henne med till palatset så att lorden kan gifta sig med henne, och som tack för det blir Shrek lovad att få tillbaka sitt träsk. Kommer han vara samma träsktroll som när han påbörjade sin resa? Kan han befria prinsessan utan att hamna i drakens klor? Och kan han lämna över henne till Lord Farquaad utan att han själv bli kär?