What do you need to make the BEST ever vegan moussaka? I would say layers of roasted eggplant slices, a hearty tomato-based ragú sauce with vegan ground meat, and a creamy white bechamel baked together. We made this recipe with THREE different ground beef alternatives. All came out scrumptious, but the meatiest of them was TVP.
Do you also like casseroles? They are so great for batch cooking. Why? Because usually the more they rest, the better they will taste. If you do, check out this meaty vegan cabbage lasagna, this no-lentils vegan shepherd’s pie, or this light vegan eggplant parmesan without breadcrumbs.
What to expect from this recipe?
There are several versions of Moussaka, but the one you might come across more frequently is the Greek Moussaka. The usual way to prepare this dish in Greece is by layering a baking dish with
- sauteed eggplant slices (aka aubergine),
- ground lamb, and
- béchamel white sauce.
So is it easy to make a vegan alternative? Yes and no.
Béchamel sauce is a milk-based white sauce thickened with flour, which is easy to replicate with plant-based milk and even with gluten-free flour. This is our go-to, easy, vegan bechamel sauce recipe, which we also use to make this vegan moussaka.
The harder part is the ground lamb. Bon Appetite even called it the “underdog of ground meats”. It is more chewy and fatty than any other alternatives, so most non-vegan home cooks don’t even use it to make moussaka. Replicating this texture and taste is not easy.
But there is one plant-based ingredient that gives you the best vegan ground beef ever. And that is TVP (textured vegetable protein). It is actually dehydrated soy crumbles made of only soy flour. 100% with no other ingredient. The texture is amazing: chewy, meaty, exactly how you would imagine ground meat. If you want the meatiest vegan moussaka ever, you should definitely use TVP.
If you think of moussaka, you will automatically think of eggplants, but what else is in there?
Tomato ragú with vegan ground beef
- TVP (textured vegetable protein) -> We give you two more alternatives in the FAQ section: lentil ragu and walnut cauliflower mince, but if you want the meatiest texture, you should try it with TVP.
- Sieved tomato puree -> You can probably find several types of tomato sauces in the stores. We recommend choosing sieved tomato puree which is thicker and unseasoned. It is by far the best ingredient to make a rich tomato-based sauce.
- Chopped tomatoes -> We used canned chopped tomatoes since ripe, sweet tomatoes are not always available in the produce section.
- Tomato paste -> Just a little extra flavor enhancer.
- Vegetable broth
- Dried or fresh parsley
- Salt and black pepper
Vegan bechamel sauce
- Dairy-free butter
- White rice flour -> if you don’t need to eat gluten-free, you can use all-purpose flour instead of the mix of rice flour and cornstarch. For more details read our vegan bechamel recipe.
- Corn starch
- Dairy-free milk -> we used unsweetened homemade cashew milk because store-bought milk, even oat milk can taste too sweet sometimes for a savory sauce.
- Salt and white pepper -> You can obviously use black pepper, but we think white pepper looks better in a white sauce.
🛒 You can find detailed measurements for all ingredients in the printable version of the recipe card at the bottom of this post.
Roasting eggplant slices
- Wash and slice eggplant into 1-inch (1-1,5 cm) thick.
- Sprinkle them with salt and let them sit for at least 20 minutes on a clean kitchen towel or paper towel to release moisture and avoid bitterness (see the below picture). No need to peel them as without it the eggplant slices might disappear in your moussaka after baking. 🙂
A quick tip: You can also let the salted slices rest overnight. Don’t worry if they get brown, as they will get brown anyhow after cooking. For more info about why you need to salt and how to prepare them, read our eggplants cooking guide.
When ready, we recommend roasting them in a baking tray with a grill rack*. For one, you need less oil, as the slices will not stick to the tray. Second, it is easier to get rid of any excess moisture as any liquid the eggplant releases will drip down the rack and will not stay with the slices like it would if you use baking sheets or parchment paper.
- Gently wipe the eggplant slices dry with a paper towel or kitchen towel.
- Preheat the oven to 390 Fahrenheit (200 degrees Celsius)
- Roast them for 15 minutes.
- When they are ready, leave them to cool on the rack. See the below photo for what they should look like after baking.
Making vegan ground beef
TVP is really dry and neutral, so you need to soak them in hot veggie broth for 30 minutes to get some flavors in them. If you soak TVP in cold water, you may need 2-3 hours to get them ready for cooking. So boil water in a kettle and add the veggie stock, or heat store-bought vegetable broth in a small saucepan.
If the time is up, drain them and squeeze any additional moisture out with your hands. Now, they are ready to be used as “raw minced meat”.
We used our chunky vegan marinara sauce to make the ragú. (For more tips, photos, and video read the original post.)
- Take a frying pan and preheat it over medium-high heat. Add the peeled and chopped onion and cook it lightly in oil until they turn glossy and tender.
- Add peeled and chopped garlic and cook for another 1-2 minutes.
- Add pre-soaked and squeezed TVP and stir it a couple of times to combine.
- Finally, add chopped tomatoes, tomato sauce, tomato paste, and seasoning (parsley, salt, and black pepper). Lower the heat and simmer the sauce for another 5 minutes. TVP doesn’t need to be cooked long as they are already soft after soaking. That is why the cooking time is like 5 minutes. Especially since it will also be baked in a casserole.
Making creamy bechamel sauce
It is super easy to make a creamy vegan bechamel sauce. You need a bit of vegan butter, flour, any plant-based milk, nutmeg, salt, and black pepper. As we eat gluten-free, we use a combination of rice flour and corn starch to make this white sauce. Here is how you should do it:
- Heat your frying pan to medium heat and melt the vegan butter.
- Turn down the heat to low and add white rice flour. Stir and cook for 2-3 minutes until the “batter” is boiling up.
- In a separate bowl combine ½ cup of milk and corn starch. Add it to the pan and stir again. Add the next ½ cup of milk and stir well. You need to go in small batches to make sure you get a smooth sauce. Continue it until you run out of milk.
- When the sauce has thickened (you need it thick so that it firmly stands on top of your moussaka), add the salt, nutmeg, and white pepper. Stir to combine.
- Not thick enough? -> Add more flour but make sure you first dissolve it in a bit of milk. Like 1 Tbsp flour or starch – 2 Tbsp milk. Alternatively, you can take it off the heat, wait for it to cool a bit and add flour or starch directly to the sauce and stir vigorously with a whisk to avoid any lumps. Note: The sauce will thicken a bit more when it is cooling down.
- Too thick? -> Add more milk, like ¼ cup at a time.
- Can you use any other flour or starch? -> Yes, you can it with any type of flour or starch, but the thickening power of each and every one of them is different. The measurements I gave in the recipe card may not be the same if you use wheat flour, almond flour or tapioca starch, etc.
- Why flour AND starch? -> If you only use starch, then the sauce will end up more like a pudding than a sauce. If you use only one type of flour, like rice, oat, or almond, the sauce will not thicken properly. I also have this experience with rice flour, that you thicken a soup or something with it, but after reheating the dish the next day, all the thickening has gone. That is why I recommend combining gluten-free flours with starch or use a store-bought gluten-free flour blend which contains usually both.
Layering and baking the moussaka
If you have roasted your eggplant slices, made the vegan mince, and the bechamel sauce, you are ready to assemble your veganized Greek Moussaka.
- Grease the bottom of a 9 x 7 x 3 inch (23 x 18 x 8 cm) oven-safe glass dish with vegan butter to ensure that the eggplant slices do not stick to the bottom.
- Add half of the roasted eggplant slices.
- Cover them with vegan ground beef in tomato ragú sauce.
- Add remaining roasted eggplant slices.
- Top it with vegan bechamel sauce generously.
- Add grated vegan cheese as the last step and bake your vegan moussaka in a preheated oven of 390 Fahrenheit (200 degrees Celsius) for 15 minutes.
FAQs and substitutions
What else can you use instead of TVP?
So I mentioned earlier that we have three alternatives for you to choose from. Hint: All of them make a delicious vegan moussaka.
- If you are looking for a real beef-like vegan mince substitute, we recommend choosing TVP* (textured vegetable protein). This is the closest you can get to the real ground meat texture and taste without the fatty and greasy part nonetheless (see photo #1).
- If you are looking for a plant-based veggie alternative, then we recommend choosing lentil ragú. Obviously, the texture will not replicate ground meat at all (see photo #2), but it tastes just so damn delicious. Lentils are also easily accessible, people like them, and are allergy-friendly. We also use lentil ragu in our vegan lentil lasagna recipe.
- We make a killer walnut and cauliflower mince in tomato sauce in our vegan spaghetti bolognese recipe. Cauliflower gives the minced texture, while walnut adds some meaty richness aka protein boost. This combination is also a yummy whole-foods plant-based option, but the mince is a bit smaller and less convincing in texture (see photo #3).
How to store it?
All casserole-type dishes are great for batch cooking. You can easily store it in the fridge for 3-4 days without any problem.
Can you freeze it?
Store any leftovers per serving (in an airtight container) in a freezer and thaw whenever you need them.
Can you use other flours/starches for the bechamel?
Yes, you can make this vegan bechamel sauce with any type of flour or starch, but the thickening power of each and every one of them is different. If you only use starch, then the sauce will end up more like a pudding than a sauce. If you use only one type of flour, the sauce may not thicken properly.
What to serve with it?
This moussaka is creamy, hearty, and filling for sure. We find it so rich sometimes that the go-to side dish we add is cooked brown rice or some simple mixed salad with balsamic vinegarette. Of course, any other grain would do, like quinoa, millet, or buckwheat. Other recommendations would be:
- Vegan Mashed Potatoes
- Vegan Scalloped Potatoes
- Savory Sweet Potato Casserole
- Kale Quinoa Tabbouleh by Vegan Yack Attack
- Spanakorizo (Greek rice and spinach) which we use in our vegan stuffed butternut squash recipe
- Greek Lemon Roasted Potatoes by Recipe Tin Eats
- Cucumber and Tomato Salad by Delicious Everyday
- Vegan Greek Salad by Yum Vegan Lunch Ideas
- Greek Pasta Salad by Strength & Sunshine
- Mediterranean Quinoa Chickpea Salad by The Green Loot
We also have some creative variations for flavored rice side dishes in our what to serve with ratatouille article that would also go perfect with any meatless vegan moussaka.
This vegan moussaka recipe is meat-free, dairy-free, and egg-free.
- Vegan – All ingredients are supposed to be vegan.
- Nut-free – Use oat milk or soy milk instead of nut milk to make the vegan white sauce. Apart from that, all other ingredients are supposed to be nut-free but always check for cross-contamination info on all packaging you need to use.
- WFPB-friendly (whole foods plant-based) – You can roast eggplant slices without oil in the oven or use an air fryer. You can also need to avoid oil to make the tomato ragu if you start with the liquid ingredient (tomato sauce) and add the others after that. However, I don’t think you can make a bechamel sauce oil-free. You can certainly try to substitute it with this oil-free vegan cashew alfredo sauce.
- Gluten-free – All ingredients are supposed to be gluten-free but always cook with certified products. If you plan to use oat milk, be sure to buy a certified gluten-free brand. Otherwise, choose another type of dairy-free milk.
- Soy-free – TVP is a soy-based product. If you need this recipe to be soy-free, choose lentil ragú which we use in our vegan lentil lasagna recipe, or choose walnut and cauliflower mince that we use in our vegan spaghetti bolognese recipe. In both cases, we recommend substituting parsley for basil and oregano as Moussaka is by no means an Italian recipe. 🙂 Don’t forget about the grated cheese. It is optional to add, so you either skip it or choose an oil-free vegan cheese.
More vegan eggplant recipes
Eggplant/aubergine is such a versatile ingredient to have around. We listed more than 30 delicious vegan eggplant recipes from appetizers through lunch to dessert. Or check out the ones below.
More vegan casserole recipes
You can browse through our vegan gluten-free dinner recipes or check out
THANK YOU so much for visiting our website. Please comment below if you have tried this recipe. We LOVE hearing from you! If you loved the recipe, please don’t forget to give us a ⭐⭐⭐⭐⭐ RATING. We appreciate all of our readers.
Meaty Vegan Moussaka (TVP Ground Beef)
- Soak TVP in hot veggie broth for 30 minutes. If they softened, drain the water and squeeze any additional moisture out with your hands. Now, they are ready to be used as "raw ground beef".
- Wash and slice eggplant into 1-inch (1-1,5 cm) thick. Salt them and let them sit at least for 20 minutes. (You can do overnight and don't worry if you turn brown. The slices will be brown after roasting and baking.)
Roasting eggplant slice
- We recommend roasting them in a baking tray with a grill rack*. Preheat the oven to 390 Fahrenheit (200 degrees Celsius) and roast them for 15 minutes. When they are ready, leave them to cool on the rack.
Making vegan ground beef ragu
- Peel and chop the onion and cook it lightly in olive oil until it turns glossy. Add peeled and chopped garlic, and cook for 1-2 minutes.
- Add the pre-soaked and squeezed TVP and stir it a couple of times.
- Finally, add chopped tomatoes, tomato sauce, tomato paste, and seasoning (parsley, salt, and pepper) and cook for 5 minutes.
Making vegan bechamel sauce
- Heat frying pan on medium/low heat, and melt vegan butter.
- Take the heat to low and add rice flour. Stir and cook for 2-3 minutes until the "batter" is boiling up.
- In a small bowl combine ½ cup of milk and corn starch. Add it to the pan and stir until combined.
- Add the next ½ cup of milk and stir until combined. You need to go in small batches to make sure you get a smooth sauce. Go until you run out of milk. (Troubleshooting tips in the Notes section below.)
- When the sauce has thickened, add salt, nutmeg, and pepper. Stir to combine.
Layering and baking moussaka
- To ensure that the eggplant slices do not stick to the bottom, we grease the bottom of our 9 x 7 x 3 inch (23 x 18 x 8 cm) oven-safe glass dish with vegan butter.
- The first layer is roasted eggplant slices (not overlapping). Then cover it with whole tomato ragu. Then add the remaining roasted eggplant slices. Top it with vegan white sauce generously. Optionally, add grated vegan cheese.
- Preheat the oven to 390 Fahrenheit (200 degrees Celsius) and bake it for 15 minutes.
Other vegan ground beef alternativesIf you prefer to make lentil ragú, visit our vegan lentil lasagna recipe. Or if you choose to make walnut and cauliflower mince, visit our vegan spaghetti bolognese recipe. In both cases, we recommend substituting parsley for basil and oregano as Moussaka is by no means an Italian recipe. 🙂
Troubleshooting tips to make a vegan bechamel
- Not thick enough? -> Add more flour but make sure you first dissolve it in a bit of milk. Like 1 Tbsp flour or starch – 2 Tbsp milk. Alternatively, you can take it off the heat, wait for it to cool a bit and add flour or starch directly in the sauce and stir vigorously with a whisk to avoid any lumps. Note: The sauce will thicken a bit more when it is cooling down.
- Too thick? -> Add more milk, like ¼ cup at a time.
- Can you use any other flour or starch? -> Yes, you can make this vegan bechamel sauce with any type of flour or starch, but the thickening power of each and every one of them is different. The measurements I gave in the recipe card may not be the same if you use wheat flour, or almond flour or tapioca starch, etc.
- Why flour AND starch? -> If you only use starch, then the sauce will end up more like a pudding than a sauce. If you use only one type of flour, like rice or oat or almond, the sauce will not thicken properly. I also have this experience with rice flour, that you thicken a soup or something with it, but after reheating the dish the next day, all the thickening has gone. That is why I recommend combining flour and starch or use a store-bought gluten-free flour blend which contains usually both.
UPDATED: This recipe was originally posted in July 2020. More tips, info, FAQ, and details were added and it was republished in June 2022.