Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 large eggplants (about 2 lb / 900 g), sliced 1/2 inch (1.25 cm)
- 1 1/2 tsp kosher salt (for eggplant) + 1 1/2 tsp kosher salt (to season)
- 3/4 cup (180 ml) olive oil, divided
- Optional: 2 medium russet potatoes (about 1 lb / 450 g), peeled, sliced 1/4 inch (6 mm)
- 1 large yellow onion, finely chopped
- 4 cloves garlic, minced
- 1 1/2 lb (680 g) ground lamb or ground beef (80–90% lean)
- 2 tbsp tomato paste
- 1/2 cup (120 ml) dry red wine (or beef broth)
- 1 can (28 oz / 794 g) crushed tomatoes
- 2 tsp dried oregano
- 1 1/2 tsp ground cinnamon
- 1/4 tsp ground allspice (optional)
- 2 tbsp chopped fresh parsley
- For béchamel: 6 tbsp (85 g) unsalted butter, 1/2 cup (60 g) all-purpose flour, 4 cups (960 ml) whole milk, 1/2 tsp ground nutmeg, 2 large egg yolks, 1 cup (100 g) finely grated Parmesan or kefalotyri
Do This
- 1. Salt eggplant 20 minutes, pat dry; roast eggplant (and optional potatoes) at 425°F (220°C) until tender.
- 2. Cook onion and garlic in olive oil; brown lamb/beef.
- 3. Stir in tomato paste, wine, crushed tomatoes, oregano, cinnamon; simmer until thick.
- 4. Make thick béchamel: butter + flour roux, whisk in warm milk, season; off heat whisk in yolks and cheese.
- 5. Layer: (optional potatoes) + half eggplant + meat sauce + remaining eggplant.
- 6. Spread béchamel on top; bake at 375°F (190°C) until browned and set.
- 7. Rest 20 minutes; slice and serve.
Why You’ll Love This Recipe
- Classic Greek comfort food with cozy cinnamon-spiced tomato sauce and a savory, custardy béchamel cap.
- Roasting the eggplant keeps the casserole rich but not greasy or soggy.
- Great make-ahead: it slices cleaner after resting and reheats beautifully.
- Flexible layers: do all eggplant, or add potatoes for a heartier, more traditional feel.
Grocery List
- Produce: 2 large eggplants, 1 large yellow onion, 1 head garlic, fresh parsley, optional russet potatoes
- Meat: ground lamb or ground beef
- Dairy: unsalted butter, whole milk, Parmesan or kefalotyri cheese, eggs
- Pantry: olive oil, kosher salt, black pepper, all-purpose flour, tomato paste, crushed tomatoes, dried oregano, ground cinnamon, ground nutmeg, optional ground allspice, dry red wine (or broth)
Full Ingredients
Roasted Eggplant (and Optional Potatoes)
- 2 large eggplants (about 2 lb / 900 g), cut into 1/2-inch (1.25 cm) rounds
- 1 1/2 tsp kosher salt (for drawing out moisture)
- 1/2 cup (120 ml) olive oil (for roasting eggplant), plus more if needed
- 1/2 tsp black pepper
- Optional potato layer: 2 medium russet potatoes (about 1 lb / 450 g), peeled and cut into 1/4-inch (6 mm) rounds
- Optional potato seasoning: 1 tbsp olive oil + 1/4 tsp kosher salt + 1/4 tsp black pepper
Spiced Meat Sauce
- 1/4 cup (60 ml) olive oil
- 1 large yellow onion, finely chopped
- 4 cloves garlic, minced
- 1 1/2 lb (680 g) ground lamb or ground beef (80–90% lean)
- 2 tbsp tomato paste
- 1/2 cup (120 ml) dry red wine (or beef broth)
- 1 can (28 oz / 794 g) crushed tomatoes
- 2 tsp dried oregano
- 1 1/2 tsp ground cinnamon
- 1/4 tsp ground allspice (optional, but very traditional)
- 1 1/4 tsp kosher salt (plus more to taste)
- 1/2 tsp black pepper
- 2 tbsp chopped fresh parsley
Thick, Creamy Béchamel Topping
- 6 tbsp (85 g) unsalted butter
- 1/2 cup (60 g) all-purpose flour
- 4 cups (960 ml) whole milk, warmed (not boiling)
- 1 tsp kosher salt
- 1/2 tsp black pepper
- 1/2 tsp ground nutmeg
- 2 large egg yolks, room temperature
- 1 cup (100 g) finely grated Parmesan or kefalotyri cheese, divided
For the Pan
- 1 tbsp olive oil (to grease the baking dish)

Step-by-Step Instructions
Step 1: Salt the eggplant to improve texture
Line two baking sheets with paper towels (or set a few layers of paper towels on the counter). Arrange the eggplant slices in a single layer and sprinkle with 1 1/2 tsp kosher salt, distributing it evenly over all slices.
Let the eggplant sit for 20 minutes. You’ll see moisture bead on the surface. Pat the slices very dry with more paper towels. This helps the eggplant roast up tender and flavorful instead of spongy.
Step 2: Roast the eggplant (and optional potatoes)
Preheat the oven to 425°F (220°C). Brush (or lightly drizzle) eggplant slices on both sides with up to 1/2 cup (120 ml) olive oil total and season with 1/2 tsp black pepper. Arrange in a single layer on baking sheets (use two sheets if needed so they roast instead of steam).
If using potatoes, toss the potato slices with 1 tbsp olive oil, 1/4 tsp kosher salt, and 1/4 tsp black pepper, then spread on a separate sheet.
Roast for 25 minutes, flipping eggplant halfway through, until the eggplant is tender and lightly golden. Potatoes should be just tender with a few golden edges; if your potato slices are thicker, give them 5–10 minutes extra as needed.
Reduce oven temperature to 375°F (190°C) for baking the assembled casserole.
Step 3: Build a thick, cinnamon-kissed meat sauce
While the vegetables roast, heat 1/4 cup (60 ml) olive oil in a large skillet or Dutch oven over medium heat. Add the chopped onion and cook for 6–8 minutes, stirring occasionally, until softened and translucent. Add the garlic and cook for 30 seconds.
Add the ground lamb or beef. Cook for 8–10 minutes, breaking it up with a spoon, until browned and no longer pink. If there is a lot of grease (more common with lamb), spoon off excess so the sauce doesn’t feel oily.
Stir in the tomato paste and cook for 1 minute. Pour in the red wine (or broth) and simmer for 2 minutes to cook off the harsh alcohol edge.
Add crushed tomatoes, oregano, cinnamon, optional allspice, 1 1/4 tsp kosher salt, and 1/2 tsp black pepper. Bring to a gentle simmer, then reduce heat to medium-low and simmer uncovered for 15–20 minutes, stirring occasionally, until thick enough to mound on a spoon. Stir in the parsley and taste for salt.
Step 4: Make the béchamel topping (thick and custardy)
In a medium saucepan, melt 6 tbsp (85 g) butter over medium heat. Whisk in the 1/2 cup (60 g) flour and cook, whisking constantly, for 2 minutes. It should look like a pale paste and smell lightly toasty (not browned).
Slowly whisk in the warmed milk, a splash at a time at first to keep it smooth, then the rest in a steady stream. Increase heat slightly to medium-high and whisk until the sauce thickens to a loose pudding consistency, 6–8 minutes.
Reduce heat to low and whisk in 1 tsp kosher salt, 1/2 tsp black pepper, and 1/2 tsp nutmeg.
Remove from the heat. In a small bowl, whisk the 2 egg yolks. While whisking constantly, spoon in about 1/2 cup hot béchamel to temper the yolks, then whisk the tempered yolks back into the pot. Whisk in 3/4 cup (75 g) of the grated cheese, reserving 1/4 cup (25 g) for the top.
Step 5: Assemble the casserole in neat, sturdy layers
Lightly grease a 9 x 13-inch (23 x 33 cm) baking dish with 1 tbsp olive oil.
If using potatoes, arrange them in an even layer on the bottom (overlapping slightly is fine). Then add half the eggplant in a tidy layer.
Spoon the meat sauce over the eggplant and spread it evenly to the edges. Top with the remaining eggplant, arranging slices so the surface is mostly covered (a few gaps are okay).
Step 6: Add béchamel and bake until browned and set
Pour the béchamel over the top layer. Use an offset spatula (or the back of a spoon) to spread it evenly all the way to the corners. Sprinkle the reserved 1/4 cup (25 g) cheese over the béchamel.
Bake at 375°F (190°C) for 45–50 minutes, until the top is deeply golden in spots and the center looks set (it should jiggle slightly, not slosh). If you want more browning, broil for 1–2 minutes, watching constantly to prevent burning.
Step 7: Rest, slice, and serve
Remove the moussaka from the oven and let it rest for 20 minutes before slicing. This resting time helps the layers firm up so you get clean, beautiful squares.
Serve warm. If you’d like, finish plates with a small sprinkle of chopped parsley and a pinch of black pepper.
Pro Tips
- Roast instead of fry: Roasting the eggplant gives you great flavor without turning the casserole oily.
- Make the meat sauce thick: Simmer until it’s no longer watery. A thick sauce prevents the layers from sliding.
- Warm the milk for béchamel: Warm milk blends more smoothly and helps you avoid lumps.
- Temper the yolks: Always whisk hot béchamel into the yolks first, then return to the pot, so the eggs don’t scramble.
- Rest before slicing: Don’t skip the 20-minute rest; it transforms the texture from loose to sliceable.
Variations
- All-eggplant (no potatoes): Skip the potato layer and add all the eggplant in 2–3 layers as needed.
- Beef or lamb blend: Use 3/4 lb (340 g) lamb + 3/4 lb (340 g) beef for balanced richness.
- Lighter béchamel: Use 2% milk instead of whole milk (the topping will be slightly less rich but still creamy).
Storage & Make-Ahead
Refrigerate: Cool completely, cover tightly, and refrigerate for up to 4 days.
Reheat: For best texture, reheat in a 350°F (175°C) oven until hot in the center, 20–30 minutes (cover loosely with foil if the top is getting too dark). Individual slices can be microwaved, but the oven keeps the béchamel nicer.
Make-ahead: You can (1) roast the eggplant/potatoes and make the meat sauce up to 2 days ahead, then assemble and make béchamel the day you bake, or (2) assemble the whole casserole (without baking), cover, and refrigerate for up to 24 hours. Bake straight from the fridge, adding 10–15 minutes to the bake time.
Freeze: Freeze baked and cooled moussaka, tightly wrapped, for up to 2 months. Thaw overnight in the fridge, then reheat at 350°F (175°C) until hot, 30–45 minutes.
Nutrition (per serving)
Approximate, based on 8 servings: 610 calories, 36 g protein, 34 g fat, 43 g carbohydrates, 7 g fiber, 12 g sugar, 980 mg sodium.

