Quick Recipe Version (TL;DR)
Quick Ingredients
- Eggplant: 3 large eggplants, 2 teaspoons kosher salt, 1/3 cup olive oil, 1/2 teaspoon black pepper
- Meat sauce: 2 tablespoons olive oil, 1 large yellow onion, 4 garlic cloves, 1 1/2 pounds ground lamb or beef, 2 tablespoons tomato paste, 1/2 cup dry red wine, 1 can crushed tomatoes, cinnamon, oregano, allspice, bay leaf, parsley
- Béchamel: 5 tablespoons unsalted butter, 1/2 cup all-purpose flour, 4 cups whole milk, 2 egg yolks, 1/2 cup grated Parmesan or kefalotyri, nutmeg, salt, pepper
- Assembly: 2 tablespoons grated Parmesan or kefalotyri for the top, 1 tablespoon chopped parsley for serving
Do This
- 1. Slice eggplant lengthwise into 1/3-inch planks, salt lightly, and let stand for 20 minutes.
- 2. Roast eggplant at 425°F for 25 minutes, flipping once, until tender and lightly browned.
- 3. Make the meat sauce by browning onion, garlic, ground meat, tomato paste, wine, tomatoes, and warm spices; simmer until thick.
- 4. Make the béchamel by whisking butter, flour, warm milk, egg yolks, cheese, and nutmeg into a smooth, velvety sauce.
- 5. Layer half the eggplant, all the meat sauce, the remaining eggplant, and all the béchamel in a 9-by-13-inch baking dish.
- 6. Bake at 375°F for 40 to 45 minutes, until set, bubbling at the edges, and golden on top.
- 7. Rest for 20 minutes before slicing so the layers hold together beautifully.
Why You’ll Love This Recipe
- Deeply comforting: Roasted eggplant, savory spiced meat sauce, and creamy béchamel bake into a rich, cozy casserole.
- Classic Mediterranean flavor: Cinnamon, oregano, tomato, olive oil, and tender eggplant give this dish its unmistakable moussaka character.
- Beautiful for gatherings: It slices neatly after resting and feels special enough for Sunday dinner, holidays, or guests.
- Make-ahead friendly: You can prepare the components in advance or assemble the whole casserole before baking.
Grocery List
- Produce: 3 large eggplants, 1 large yellow onion, 4 garlic cloves, fresh parsley
- Meat: 1 1/2 pounds ground lamb, ground beef, or a mixture of both
- Dairy: Whole milk, unsalted butter, Parmesan or kefalotyri cheese, large eggs
- Pantry: Olive oil, kosher salt, black pepper, all-purpose flour, tomato paste, crushed tomatoes, dry red wine, dried oregano, ground cinnamon, ground allspice, ground nutmeg, bay leaf, granulated sugar
Full Ingredients
For the Roasted Eggplant
- 3 large eggplants, about 3 pounds total, trimmed and sliced lengthwise into 1/3-inch-thick planks
- 2 teaspoons kosher salt, divided
- 1/3 cup extra-virgin olive oil
- 1/2 teaspoon freshly ground black pepper
For the Spiced Meat Sauce
- 2 tablespoons extra-virgin olive oil
- 1 large yellow onion, finely diced, about 1 1/2 cups
- 4 garlic cloves, minced
- 1 1/2 pounds ground lamb, ground beef, or a 50/50 mixture
- 1 1/4 teaspoons kosher salt
- 3/4 teaspoon freshly ground black pepper
- 2 tablespoons tomato paste
- 1 teaspoon dried oregano
- 1 teaspoon ground cinnamon
- 1/4 teaspoon ground allspice
- 1/2 cup dry red wine
- 1 can crushed tomatoes, 28 ounces
- 1 bay leaf
- 1 teaspoon granulated sugar
- 2 tablespoons finely chopped fresh parsley
For the Velvety Béchamel
- 5 tablespoons unsalted butter
- 1/2 cup all-purpose flour
- 4 cups whole milk, warmed until steaming but not boiling
- 1 teaspoon kosher salt
- 1/4 teaspoon freshly ground black pepper, or white pepper if preferred
- 1/4 teaspoon ground nutmeg
- 2 large egg yolks, lightly beaten
- 1/2 cup finely grated Parmesan or kefalotyri cheese, about 50 grams
For Assembly and Finishing
- 1 teaspoon olive oil or softened butter, for greasing the baking dish
- 2 tablespoons finely grated Parmesan or kefalotyri cheese, for the top
- 1 tablespoon finely chopped fresh parsley, for serving

Step-by-Step Instructions
Step 1: Salt the eggplant and heat the oven
Preheat the oven to 425°F. Line 2 large rimmed baking sheets with parchment paper. Arrange the eggplant slices in a single layer on the prepared baking sheets and sprinkle both sides with 2 teaspoons kosher salt. Let the eggplant stand for 20 minutes. This helps draw out excess moisture and gives the roasted slices a silkier texture.
After 20 minutes, blot the eggplant very well with clean kitchen towels or paper towels. Do not rinse it; simply pat away the beads of moisture and any excess salt on the surface.
Step 2: Roast the eggplant until tender
Brush both sides of the eggplant slices with 1/3 cup olive oil and season with 1/2 teaspoon black pepper. Roast at 425°F for 25 minutes total, flipping the slices after 15 minutes, until the eggplant is tender, lightly browned at the edges, and flexible enough to layer.
Remove the eggplant from the oven and set it aside. Reduce the oven temperature to 375°F for baking the assembled moussaka.
Step 3: Start the spiced meat sauce
While the eggplant roasts, heat 2 tablespoons olive oil in a large skillet or Dutch oven over medium heat. Add the diced onion and cook for 6 to 8 minutes, stirring often, until softened and lightly golden. Add the minced garlic and cook for 30 seconds, just until fragrant.
Add the ground lamb or beef, 1 1/4 teaspoons kosher salt, and 3/4 teaspoon black pepper. Cook for 7 to 9 minutes, breaking the meat into small crumbles with a wooden spoon, until browned and no longer pink. If there is more than 2 tablespoons of rendered fat in the pan, spoon off the excess.
Step 4: Simmer the meat sauce until thick
Stir in the tomato paste, dried oregano, cinnamon, and allspice. Cook for 1 minute, stirring constantly, to toast the spices and deepen the tomato flavor. Pour in the red wine and scrape up any browned bits from the bottom of the pan. Simmer for 3 to 4 minutes, until the wine is reduced by about half.
Add the crushed tomatoes, bay leaf, and sugar. Bring to a gentle simmer, then reduce the heat to medium-low and cook uncovered for 25 minutes, stirring occasionally, until the sauce is thick and spoonable rather than watery. Remove and discard the bay leaf. Stir in 2 tablespoons chopped parsley, then taste and adjust seasoning if needed.
Step 5: Make the béchamel
In a medium saucepan, melt 5 tablespoons unsalted butter over medium heat. Add 1/2 cup flour and whisk continuously for 2 minutes. The mixture should look smooth and slightly foamy, but it should not brown.
Gradually whisk in the warm milk, about 1/2 cup at a time at first, whisking well after each addition to prevent lumps. Once all the milk is added, cook the sauce over medium heat for 6 to 8 minutes, whisking often, until it thickens enough to coat the back of a spoon. Whisk in 1 teaspoon kosher salt, 1/4 teaspoon black pepper, and 1/4 teaspoon nutmeg.
Step 6: Enrich the béchamel with egg yolks and cheese
Remove the saucepan from the heat. In a small bowl, lightly beat the egg yolks. Slowly whisk about 1/2 cup of the hot béchamel into the yolks to temper them, then whisk the yolk mixture back into the saucepan. Stir in 1/2 cup grated Parmesan or kefalotyri until melted and smooth.
The finished béchamel should be creamy, glossy, and thick enough to spread over the casserole without immediately sinking into the meat sauce. If it becomes too thick to spread, whisk in 1 to 2 tablespoons of warm milk.
Step 7: Assemble the moussaka
Lightly grease a 9-by-13-inch baking dish with 1 teaspoon olive oil or softened butter. Arrange half of the roasted eggplant slices in an even layer on the bottom of the dish, slightly overlapping them as needed. Spoon all of the meat sauce over the eggplant and spread it into an even layer.
Top with the remaining roasted eggplant slices. Pour the béchamel over the eggplant and gently spread it all the way to the edges. Sprinkle the top with 2 tablespoons grated Parmesan or kefalotyri.
Step 8: Bake until golden, then rest before slicing
Bake the moussaka at 375°F for 40 to 45 minutes, until the edges are bubbling, the top is golden in spots, and the béchamel is set. If you would like a deeper golden top, broil for 1 to 2 minutes at the end, watching carefully so it does not burn.
Let the moussaka rest at room temperature for 20 minutes before slicing. This resting time is important: it allows the béchamel and meat sauce to settle, giving you clean, satisfying layers. Sprinkle with 1 tablespoon chopped parsley just before serving.
Pro Tips
- Roast instead of frying: Traditional moussaka often uses fried eggplant, but roasting gives you rich flavor with less oil and less mess.
- Keep the meat sauce thick: A loose sauce can make the casserole slide apart. Simmer until the sauce looks rich and concentrated.
- Warm the milk for béchamel: Warm milk blends more smoothly into the roux and helps prevent lumps.
- Do not skip the rest: Moussaka needs at least 20 minutes after baking to slice neatly.
- Use the right dish: A 9-by-13-inch baking dish gives the best balance of layers; a much larger dish will make the moussaka too thin.
Variations
- Greek-style lamb moussaka: Use all ground lamb and kefalotyri cheese for a more traditional, deeply savory flavor.
- Beef moussaka: Use 1 1/2 pounds ground beef for a familiar, family-friendly version that is still rich and aromatic.
- Potato-eggplant moussaka: Add 1 pound thinly sliced Yukon Gold potatoes. Roast the potato slices at 425°F with 2 tablespoons olive oil and 1/2 teaspoon salt for 20 minutes, then layer them on the bottom of the baking dish before the first eggplant layer.
Storage & Make-Ahead
Store leftover moussaka tightly covered in the refrigerator for up to 4 days. Reheat individual slices in a 350°F oven for 18 to 22 minutes, or microwave on medium power until hot. To make it ahead, roast the eggplant and cook the meat sauce up to 2 days in advance; store them separately in airtight containers in the refrigerator. You can also assemble the full moussaka, cover it tightly, and refrigerate it unbaked for up to 24 hours. If baking from cold, add 10 to 15 minutes to the baking time. For freezing, bake and cool the moussaka completely, wrap well, and freeze for up to 2 months. Thaw overnight in the refrigerator before reheating.
Nutrition (per serving)
Calories: 560 kcal | Carbs: 31g | Protein: 30g | Fat: 37g | Saturated Fat: 16g | Fiber: 8g | Sugar: 14g | Sodium: 820mg | Cholesterol: 155mg
