Cặp vợ chồng mới cưới Shrek và Công chúa Fiona trở về sau tuần trăng mật và phát hiện ra rằng họ đã được cha mẹ của Fiona mời đến một vũ hội hoàng gia để kỷ niệm cuộc hôn nhân của họ. Shrek ban đầu từ chối tham dự, nhưng Fiona đã thuyết phục anh ta, và cùng với Donkey, họ du hành đến vương quốc Far Far Away. Họ gặp cha mẹ của Fiona, Vua Harold và Nữ hoàng Lillian, những người bị sốc khi nhìn thấy yêu tinh, trong đó Harold đặc biệt bị đẩy lùi. Vào bữa tối, Shrek và Harold tranh cãi nảy lửa, và Fiona, chán ghét hành vi của họ, nhốt mình trong phòng. Shrek lo lắng rằng anh ta sẽ mất Fiona, đặc biệt là sau khi tìm thấy cuốn nhật ký thời thơ ấu của cô ấy và đọc được rằng cô ấy đã từng say mê Hoàng tử quyến rũ.
Harold bị Bà tiên đỡ đầu bí mật khiển trách vì con trai của bà, Hoàng tử quyến rũ, đã kết hôn với Fiona để đổi lấy kết thúc có hậu cho Harold. Cô ấy ra lệnh cho anh ta loại bỏ Shrek, vì vậy Harold đã sắp xếp để Puss in Boots ám sát anh ta dưới chiêu bài đi săn. Không thể đánh bại Shrek, Puss tiết lộ rằng anh ta đã được Harold trả tiền và đề nghị trở thành đồng minh. Shrek, Donkey và Puss lẻn vào nhà máy của Bà tiên đỡ đầu và lấy trộm lọ thuốc "Hạnh phúc mãi mãi về sau" mà Shrek nghĩ sẽ giúp anh ta đủ tốt cho Fiona. Shrek và Donkey đều uống lọ thuốc nhưng không có gì xảy ra. Shrek than thở trước khi anh và Donkey đột nhiên ngủ thiếp đi. Trong khi đó, ở Far Far Away, Fiona chuẩn bị đi tìm Shrek để họ có thể trở về nhà, nhưng cô ấy cũng ngủ quên.
Sáng hôm sau, lọ thuốc biến Shrek và Fiona thành người, còn Lừa thành ngựa đực trắng. Để thay đổi vĩnh viễn, Shrek phải hôn Fiona trước nửa đêm. Shrek, Donkey và Puss trở lại lâu đài. Tuy nhiên, Bà tiên đỡ đầu, sau khi phát hiện ra vụ trộm, đã cử Charming đóng giả Shrek và giành được tình yêu của Fiona. Trước sự thúc giục của Bà tiên đỡ đầu, Shrek rời lâu đài, tin rằng cách tốt nhất để khiến Fiona hạnh phúc là để cô ấy ra đi.
Fiona không đáp lại những tiến bộ của Charming, vì vậy để đảm bảo rằng cô ấy yêu Charming, Bà tiên đỡ đầu đã đưa cho Harold một lọ thuốc tình yêu để cho vào trà của Fiona. Cuộc trao đổi này bị Shrek, Donkey và Puss nghe được, những người bị các hiệp sĩ hoàng gia bắt giữ sau khi Donkey vô tình để lộ họ. Trong khi vũ hội hoàng gia bắt đầu, những sinh vật trong truyện cổ tích mà Shrek và Donkey đã gặp trong cuộc phiêu lưu trước đó của họ đến ngục tối để giải cứu ba người họ, và tất cả họ xông vào lâu đài với sự giúp đỡ của một người đàn ông bánh gừng sống quái dị do Muffin tạo ra Người đàn ông.
Shrek không ngăn được Charming hôn Fiona, nhưng thay vì yêu, Fiona lại đánh gục anh ta; Harold tiết lộ rằng anh đã đổi trà của Fiona có lọ thuốc tình yêu với một trà khác. Bà tiên đỡ đầu đang tức giận cố gắng giết Shrek bằng cây đũa thần của mình, nhưng Harold đã nhảy ra trước nó; câu thần chú bật ra khỏi áo giáp của anh ta và làm cô ấy tan rã. Khi Bà tiên đỡ đầu biến mất, Harold trở lại thành Hoàng tử ếch. Harold xin lỗi, thừa nhận đã sử dụng lọ thuốc "Hạnh phúc mãi mãi về sau" nhiều năm trước để có được tình yêu của Lillian, đồng thời chấp thuận cuộc hôn nhân của Shrek và Fiona. Lillian đảm bảo với Harold rằng cô ấy vẫn yêu anh ấy. Khi đồng hồ điểm nửa đêm, Fiona từ chối lời đề nghị tiếp tục làm người của Shrek, và họ trở lại thành yêu tinh, trong khi Donkey cũng trở lại bình thường. Trong cảnh mid-credit, Dragon, người trước đây đã kết hôn với Donkey, tiết lộ rằng họ hiện có một số đứa con lai giữa rồng và lừa.