This traditional Greek Moussaka recipe is made with thick layers of succulent eggplant in a rich tomato-meat sauce, topped with a creamy béchamel sauce. Vegetarian & vegan-adaptable. Video.

In a nutshell, this Moussaka recipe is heavenly. It is one of the first recipes I learned to cook, and to this day, it remains one of my favorites. Cozy, hearty, and flavorful, authentic Moussaka is pure comfort food. I encourage you to make it on a lazy Sunday or when you have time to enjoy the process; it will reward you a hundredfold. I know you will love this! Plus, it’s perfect for special occasions!
Over the years, I’ve tested and perfected this recipe, discovering what truly makes the perfect Moussaka: a rich flavor without greasiness, a creamy béchamel that holds its shape, and a texture that slices easily. I’ve even tested the “shortcuts,” and they simply don’t achieve the same results. For the BEST moussaka, roast or grill the eggplant before assembling and baking.
I’ll walk you through each step-plus plenty of make-ahead and vegan tips-so it turns out beautifully every time.
What is Moussaka?
Moussaka originates from the Mediterranean but most commonly hails from Greece. Succulent, roasted eggplant is layered with a rich, meaty tomato sauce made with ground lamb (or ground beef or plant-based meat) and a hint of cinnamon. Topped with a wobbly béchamel sauce infused with fresh nutmeg, it’s placed in a hot oven to bake. The creamy béchamel turns a lovely golden brown, infusing your home with goodness. Every time I make this classic Greek dish, I find myself wishing I made a double batch, freezing one for another time.
Moussaka Recipe Ingredients

- Roasted eggplant (aubergine): Look for larger eggplants to make this less work. Globe eggplant makes up the base layer. It is sliced and salted to draw out excess moisture and bitterness before roasting. You can grill the eggplant for even more flavor.
- Ground meat: Use ground lamb (traditional) for the best traditional flavor. You can substitute with ground meat or a plant-based “ground meat” (for vegetarian or vegan moussaka). If you are new to lamb, try half ground lamb and half ground beef.
- Onions and garlic: Add savory depth of flavor.
- Tomato sauce: Adds a tangy, sweet element, with a hint of cinnamon.
- Béchamel sauce: This creamy white sauce is a signature component of moussaka. It’s made from unsalted butter, all-purpose flour, and milk, and is usually seasoned with a pinch of nutmeg. See notes for a vegan option.
- Cheese: (optional): If desired, sprinkle grated Parmesan cheese or Kefalotyri over the béchamel layer for a golden crust.
- Spices and herbs: Oregano, cinnamon, nutmeg, thyme, and bay leaves enhance the overall flavor profile.
- Egg (optional): Beaten egg yolks can be mixed into the béchamel sauce for richness and structure.
- Fresh parsley: Adds a lovely freshness to the tomato sauce.
Variations of moussaka
- Add layers of potatoes: Layering in roasted or grilled Yukon gold or russet potato slices with the eggplant adds extra heartiness. It’s especially great for vegetarian or vegan versions!
- Vegetarian: Use plant-based ground “meat” instead of traditional meat. The rest of the ingredients and the preparation process remain the same.
- Vegan: Use plant-based “meat” in the tomato meat sauce, substituting vegan butter or olive oil for the butter, and plant-based milk in the béchamel sauce. Skip adding the egg to the béchamel sauce, and either skip the cheese or use vegan cheese for the top.
- Gluten-free: Use gluten-free flour as a substitute in the béchamel sauce to make a gluten-free version.
How to make Moussaka
This recipe has four steps, so make this on a day when you have ample time and are not rushed. Tip: Or make it in stages! Roast the eggplant and make the meat sauce ahead of time, and assemble the dish on the day of baking. The leftovers are even better, so you could make the whole dish in advance, bake it, and reheat it when entertaining. Sometimes I’ll have my husband grill the eggplant ahead, and I’ll have it ready in the fridge waiting for me to assemble.
- Salt and roast the eggplant.
- Make the tomato-meat sauce.
- Make the béchamel sauce.
- Assemble and bake!
STEP-BY-STEP Instructions
1. Prep the eggplant. Slice the eggplant into 1/3-inch thick discs. Sprinkle kosher salt over top of the eggplant and let sit in a colander or bowl for 20 minutes to an hour. Preheat the oven to 400°F.

Tip: Salting the eggplant will help it release its liquid, resulting in a much better texture with less bitterness. If pressed for time, you can skip this step, but I highly recommend it.
2. Roast the eggplant. Rinse the eggplant, pat dry, and brush each side with olive oil (or use spray olive oil). I don’t like to drizzle olive oil for this recipe because you want each slice to be coated evenly. Spread the slices out on a greased or parchment-lined baking sheet and roast for 20-30 minutes.

Tip: Grill the eggplant! Grill each side of the eggplant until it achieves nice, deep grill marks. Then wrap in foil for 10-15 minutes to allow it to steam and cook through.
3. Sauté aromatics and brown the meat. In a large saucepan or large skillet, sauté diced onion in olive oil over medium heat for 3-4 minutes. Add the garlic and reduce the heat to medium-low. Sauté 8-10 minutes until onions are tender. Add ground meat and brown it. Scrape up any browned bits, stirring for 10-15 minutes. Drain any fat away.
4. Make the tomato meat sauce. Add diced tomatoes, tomato paste, white wine, fresh parsley, sugar, cinnamon, kosher salt, and black pepper. Stir, cover, and let simmer over low heat for 20 minutes until you have a thick, rich tomato sauce.

5. Make béchamel sauce. Melt butter in a small saucepan. Whisk in flour and cook 2-3 minutes over medium heat, stirring often. Let the flour “cook.” Whisk in the first cup of milk a little at a time. Whisk well, then add the second cup. Continue stirring, bring to a simmer, lower the heat, and let simmer over low heat for 2 minutes. Remove from heat and add nutmeg, cheese, salt, and pepper. Let cool. Lightly beat an egg yolk in a separate bowl (don’t add it yet).
Tip: Bring the béchamel ingredients to room temperature for best results.

6. Divide the eggplant slices. Separate the eggplant slices into three stacks-a top layer, middle layer, and bottom layer. Reserve the best-looking and largest pieces for the top and bottom layers.

7. Assemble the moussaka. Grease a baking dish, then place your first layer of eggplant slices. Add half of the moussaka meat sauce. Top the with middle layer of eggplant, then add the remaining sauce. Add the top layer of eggplant.
Whisk 2-3 tablespoons of béchamel sauce into the beaten egg to temper it (this prevents curdling), then pour the egg mixture into the creamy bechamel sauce. Whisk together until smooth and thick (it should hold on the back of a spoon). Having a thick béchamel is key so that it does not seep into the layers below. Spread the béchamel sauce over the top of the dish.

If desired, sprinkle with cheese.

8. Bake the moussaka. Bake uncovered for 50-60 minutes until beautifully golden.
9. Let rest. When it is done, your house will smell heavenly. Let the Moussaka rest for 10 minutes before cutting into it so it can set up a bit.

Expert Tips:
- Always roast or grill the eggplant first. There are many recipes on how to do a quicker version-numerous ways to cut corners. And while I am all for efficiency, I have never been happy with these results regarding Moussaka. Whatever you do, please do not layer the eggplant without roasting (or grilling) it first!
- Make this in stages if pressed for time. The eggplant can be roasted or grilled ahead and refrigerated. Same with the tomato-meat sauce. Same with the béchamel! Then, just assemble and bake. Moussaka can be assembled and refrigerated up to 3 days ahead.
- Bake this ahead. The Eggplant Moussaka tastes even better the next day, so feel free to bake it ahead and reheat it before serving! It can be frozen and reheated, too.
- Salting the eggplant reduces bitterness. Yes, if you are desperate for time, you can skip the salting if necessary, but it does elevate the dish.
Troubleshooting
- My moussaka turned out watery: This usually means the eggplant didn’t drain well or the sauce wasn’t reduced enough. Salt and rest your eggplant slices for at least 20 minutes, then pat dry before roasting or grilling. Simmer the tomato meat sauce until thick and jammy.
- The béchamel separated or turned grainy: This may happen if the milk is added too quickly or the heat is too high. Add milk slowly and whisk continuously. If it separates, whisk in a splash of warm milk over low heat until smooth.
- The layers slipped when slicing: Let your moussaka rest before slicing, preferably for at least 15 minutes.
- The top didn’t brown evenly: Place it under the broiler for a minute or two.
- The béchamel was too thin or too thick. If too thin, return to low heat and whisk in a tablespoon of flour mixed with 2 tablespoons of milk. If too thick, thin with warm milk, whisking until creamy.
- The eggplant absorbed too much oil: Brush the oil lightly over top or use an olive oil spray for even coating. Eggplant acts like a sponge!
Meal Prep & Storage
- To make moussaka ahead of time: Roast the eggplant, make the tomato-meat sauce, and prepare the béchamel sauce beforehand. Store the components separately. Then, assemble the dish and bake it when ready to serve. Alternatively, you can bake the moussaka ahead and reheat it before serving. Tip: Make two batches and freeze a second one for later!
- Storage: Moussaka can be stored in the fridge for up to 4 days.
- Freezing: After baking the dish, let it cool, wrap it tightly, and freeze for up to 6 months. Thaw in the refrigerator before reheating.
- To reheat: Reheat moussaka in a 350°F oven until the internal temperature reaches 140°F, or use the microwave until warmed through.
What to serve with Moussaka?
- Simple green tossed in Greek Salad Dressing
- Warm, homemade Pita Bread
- Couscous or Cauliflower Couscous
- Baba Ganoush
Moussaka FAQs
Moussaka is a classic Mediterranean comfort food dish made with layers of roasted eggplant, ground meat (lamb, beef, or plant-based), and a cinnamon-infused tomato sauce, topped with a wobbly béchamel sauce scented with nutmeg.
Moussaka originates from the Mediterranean but is most commonly associated with Greece.
The key ingredients in moussaka include roasted eggplant, ground meat (lamb, beef, or plant-based), onions, garlic, tomato sauce, béchamel sauce, cheese (optional), olive oil, spices, herbs, salt, and black pepper.
Salting the eggplant helps draw out excess moisture and bitterness, resulting in a better texture and taste.
Moussaka can be enjoyed as a complete meal. However, if you’d like to serve it with other dishes, it pairs well with a fresh Greek salad, bread, or tzatziki.
Yes, you can omit the cheese if desired. The dish will still have wonderful flavors from the other ingredients.

If you are an eggplant lover, I promise you will love yourself for making this traditional recipe for Moussaka! So satisfying and worth the effort! Perfect for entertaining!
Have a happy, delicious week. xo
More Eggplant recipes You’ll love
How to make Moussaka! (Recipe Video)
After you try this Moussaka recipe, let us know how it turns out in the comments below. Your review will help other readers, too! Sign up here to join our community and receive our latest recipes and weekly newsletter! xoxo Sylvia

Moussaka Recipe
- Prep Time: 1 hour
- Cook Time: 2 hours
- Total Time: 3 hours
- Yield: 8 1x
- Category: main, entree, dinner recipe, dinner idea
- Method: Baked
- Cuisine: Greek
Description
An authentic, delicious recipe for Eggplant Moussaka- with a Tomato lamb sauce, and creamy béchamel sauce. Vegetarian Adaptable! Can be made ahead and baked prior to serving. See notes for VEGAN.
Ingredients
- 3 lbs Eggplant (2 extra-large or 3 eggplants)
- salt
- 3 tablespoons olive oil or spray olive oil
Tomato Meat Sauce:
- 2 tablespoons olive oil
- 1 large onion, diced
- 4 cloves garlic, rough chopped
- 2 lbs ground lamb, ground beef (or use vegetarian ground meat substitute -Gimme Lean or St Ives Meatless Ground, or use 4 cups cooked lentils). I prefer lamb.
- 1 1/2 cups diced tomatoes, with juices (or 14-ounce can, with juices)
- 3 tablespoons tomato paste
- 1/2 cup white wine (optional, sub 1/4 cup water)
- 2 teaspoons dried oregano
- 1 tsp sugar
- 1 tsp cinnamon
- 3/4 tsp kosher salt
- 1/2 teaspoon cracked pepper
- 2–3 tablespoons fresh chopped parsley
Bechamel Sauce:
- 3 tablespoons butter or olive oil
- 4 tablespoons flour
- 2 cups milk (or plant-based milk)
- 1/2 teaspoon nutmeg (use fresh grated if possible)
- 1/4 teaspoon kosher salt
- 1/8 teaspoon white pepper or finely ground black pepper
- 1/4 cup grated Parmesan, Pecorino or Kefalotiri Cheese (plus an additional 1/4 cup for the top-optional) or use vegan cheese.
- 1 egg, room temp, lightly beaten (vegans can leave this out)
Instructions
- Prep: Pre-heat oven to 400 F. Cut eggplant into ⅓- ¼ inch thick disks (no thinner), sprinkle with a little kosher salt and let sit in a colander or bowl for 20-60 minutes. Eggplant will start to release liquid (making it less bitter)
- Rinse well, pat dry and brush each side with olive oil (or use spray olive oil).
- Roast: Place on parchment lined baking sheet and roast in a 400 F oven until golden and teneder, about 20-30 minutes. Alternatively, you can grill the eggplant on each side (getting nice deep grill marks) then wrap for 10-15 minutes so it steams and cooks through.
- While eggplant is roasting – make the Tomato-Meat sauce: In a large pan, saute diced onion in oil on med-high heat for 3-4 minutes, add garlic, turn the heat down to med-low and saute for 8-10 minutes until onions are tender. Add the ground lamb (or beef or vegetarian meat), turn the heat up to medium and brown, stirring often, for about 15 minutes. Drain fat if any. Add the rest of the ingredients -diced tomatoes, tomato paste, white wine, fresh chopped parsley, sugar, cinnamon, kosher salt and pepper. Stir and cover and let simmer on med-low heat for 20 minutes. Taste, adjust salt to taste. You should have a rich, delicious, thick sauce.
- Make Bechamel Sauce: In a small sauce pan, heat the butter over medium heat. Whisk in the flour and let cook for 2-3 minutes, stirring often. Whisk in the first cup of milk a little at a time. Whisk well, and add the 2nd cup. Stirring constantly, bring to a simmer, lower heat, and let simmer on low for an additional 2 minutes. Remove from heat and add nutmeg, cheese, salt, and pepper. Set aside to cool. Lightly beat an egg in a separate bowl, but do not add it just yet.
- Assemble: Divide eggplant slices into three stacks, reserving the best-looking & largest pieces for the top and bottom layers. The others can be placed in the middle layer, which will be concealed.
- In a greased 8x 13-inch baking dish, (or 11-12-inch round) place one layer of eggplant. Add half the meat sauce. Add another layer of eggplant and the remaining meat sauce. Add the third and final layer of eggplant. Take 3 tablespoons of the warm bechamel sauce, one tablespoon at a time, and whisk it into the beaten egg, to temper the egg (basically warm up the egg gradually so it doesn’t curdle), then pour this egg mixture into the bechamel sauce, whisking until nice and smooth. Spread the bechamel sauce over the final eggplant layer.
- Bake: Sprinkle with the remaining cheese (optional) and place in a 350F oven for 50-60 minutes, uncovered until beautifully golden. Let stand 10 minutes before serving.
Notes
- Make it ahead: You can assemble this ahead and refrigerate for 2 days before baking. You can bake this ahead and reheat & serve with in 4 days. You can also freeze for 6 months after baking.
- Make in stages: An easy way to approach this is to make this in stages. For example, roast or grill the eggplant a couple of days ahead, make the tomato meat sauce the next day, make the béchamel the last day and assemble the day of baking.
- My personal preferences here are to grill the eggplant if possible and to use ground lamb (or a mix of beef and lamb). Soooo good!
- VEGAN: You can make this vegan by using plant-based meat or 4 cups of cooked lentils in the tomato sauce. In the bechamel, use olive oil, plant-based milk and vegan cheese, and skip the egg. This can be quite good Just make sure both the red sauce and white sauce are flavorful, tasting, and seasoning well (especially if using lentils). Adding a little miso paste to the red sauce can help add depth if needed. I also added some toasted walnuts to the red sauce for depth.
Nutrition
- Serving Size:
- Calories: 564
- Sugar: 12.6 g
- Sodium: 411.8 mg
- Fat: 40.7 g
- Saturated Fat: 14.1 g
- Carbohydrates: 23.5 g
- Fiber: 6.6 g
- Protein: 25.7 g
- Cholesterol: 109.2 mg
Ugh this meal!!! Is soooo good! I’ve made your recipe once before (and loved it!) so I made it again for my brother and sister-in-law who are visiting. I used Beyond meat. We just warmed up the leftovers with some sautéed kale and it was soooo good! One of my favorite dishes ever!!
We LOVE hearing from you Angeli! I am so happy you like this one- one of my favorites too!
Delicious! We made the meat sauce and roasted eggplant a day before serving and made the topping right before baking – it turned out great. With kids, it helps to break up the steps making some layers a day ahead. I will be making this again! We also did 1 lb ground beef and 1 lb lamb.
Perfect Erica!
Worth the effort! This was really good! I made it with ground beef. Will definitely make again but likely will follow the recommend in advance steps.
Glad you enjoyed Pam! Yes the advance steps can save a lot of stress.
Just curious, why white wine instead of red? I usually use red for this, but am wondering if there’s a reason you opted for white.
Either will work Ariane!
I haven’t had Moussaka in 50 years, due to developing an allergy to cow milk products, but this looks doable! Thanks you for offering such wonderful substitution options! Looking forward to making this as soon as it cools down enough to use the oven!
thanks Sylvia! Hope you give it a go!
Thank you, Sylvia! I finally made this recipe. Really appreciate the vegan options and suggestions on how to make ahead in steps. Delicious! And, as you said, the leftovers are even better.
Great to hear Chris!
Wow! This recipe is as good as the Moussaka I grew up enjoying whenever I went over to my Greek girlfriend’s place for dinner. Thank you for the tasty walk down memory lane 🙂
Awesome to hear Rennie!
Another great recipe with very helpful hints for success. I have made moussaka before but it never turned out this good. Thank you!
Oh good Kelly! Glad you enjoyed it!
I made this yesterday and while it took me the better part of a day, it was delicious!!! It’s not a difficult recipe to follow, but just know, it will take some time. The good news is that you will be rewarded with lots of deliciousness!!!!
Glad you gave it a go! Thanks Gale. 🙂
I don‘t really like cinnamon or nutmeg in savory dishes. Can you recommend substitutes that will work as well? Other than that the recipe is one I would try.
Hi Kathy! So…they really just make this dish- and I just can’t picture the dish without? What if you cut back a little?
Just finished making this, and… it’s perhaps the tastiest thing I’ve ever cooked!!
Certainly steps-intensive, but easy enough when split over a couple sessions. This was my first time making bechamel, but these instructions were very clear. I used beef and oat milk since that’s what I had available; I’m curious to try making a vegetarian version next time.
My only critique: the final portion feels closer to 4 servings than 8! Given how badly I want to keep eating it 😋
Thanks Will- I am so glad you enjoyed this. I know- I usually make a double batch because of that same reason!
I made this the other night for a small dinner party. I made it the day before so that the flavors could marry. Because the guests are such carnivores, I doubled the meat. This was such a hit with everyone! I’ve frozen the leftovers and shared the recipe. Thanks!
Awesome, Marcene- I am so happy everyone enjoyed it. One of my favorites!
Made this delicious Moussaka today. The results – spectacular! My Greek mama taught me quite a few of her favourite dishes and I have warm memories of making (Moo-sa-KA!) together. My husband went for seconds and he does not love eggplant!
Awww… this makes me so happy Anna! This recipe is dear to my heart. I am glad you both enjoyed.
My fave moussaka recipe. We live in Cyprus and this exceeds anything in any restaurant. Lots of work. Making it in stages is the best way to enjoy the process.
Thanks Lori- I love this one too. Means a lot to me. 😉
Divine! Your website is so beautiful, this is my first visit and this recipe insures it won’t be my last.
Great to hear Karen!
Forgot to mention I made it with ground beef.
Love it!
Amazing! My husband who usually doesn’t like eggplant, agrees, along with our son, that this meal was SO good. Comforting, soft and full of flavor.
It will be on the menu again for next week because it was just that good.
So great to hear Ragna!
Sorry, forgot to rate my review! 5 stars from me 😀
This is absolutely delicious! It’s definitely filling and comfort food, but doesn’t sit heavy. The spicing of the sauce, especially the cinnamon, is my favorite part! I made it with ground beef. This was also my first time making a proper bechamel on the stove and the instructions were very easy to follow (and worked just fine with GF flour). The eggplant turned out great even with just 20 minutes of salting, though next time when I’m not in a time crunch I may try for longer. It also made my house smell amazing!
Great to hear Nicole, so glad you gave it a go!
I love this recipe. The moussaka was so delicious and my guests and I were drooling! Thank you.
Yay, happy to hear this Heather!
Great way to make a tasty eggplant dish
Glad you enjoyed!
How many does it serve?
this serves 8
I just made this recipe to the letter and it turned out fantastic – my husband loved it!
Great to hear Anne!
This filled my house with the most delightful smells. Eating it was pure joy. Absolutely delicious!
Wonderful!