Vegan Pastitsio
This post may contain affiliate links. As an Amazon Associate, I earn from qualifying purchases. Please read my disclosure.My Vegan Pastitsio recipe is all about bringing comfort food into a plant-based lifestyle. Based on my mom’s Greek traditional recipe, I make it with a healthy approach and high-protein ingredients, and trust me, the flavor is unreal. It is just as satisfying as the classic.

Traditional pastitsio is known for its thick layers of pasta, a hearty meat sauce, and a creamy béchamel topping, all baked to golden perfection. But I wanted a version that fits my lifestyle and the needs of my family and friends looking for a dairy-free, protein-rich, and plant-based alternative – just like when I created my healthy vegetable lasagna recipe.
I basically swapped out the usual ingredients for a nourishing blend of lentils, chickpeas, walnuts, and a creamy vegan béchamel. Yes, it takes a little time to bring all the layers together, but trust me, it’s worth it. And the best part? I can prep ahead, just like I do with my vegetarian lasagna roll ups, so when it’s time to bake, all that’s left to do is assemble and pop it in the oven.
👩🏽🍳 Why I Love This Recipe
Growing up, my mom’s traditional pastitsio was my absolute favorite dish. It was the one meal I looked forward to the most. I never thought I’d be able to recreate the same flavors without meat and dairy, but my vegan pastitsio recipe proves otherwise. It’s hearty, satisfying, and so close to my mom’s version that even my family loves it, they grew up eating the classic dish, and this one hits all the familiar notes.
At first, I was not sure if I could capture the same flavors and texture as the original. But once I broke it down into layers, it all started to come together. The pasta was the easy part, I used whole wheat pasta. To give it the right texture, I used a blend of plant-based milk, tapioca starch, and vegan Parmesan, which helped bind everything together. The “meat” sauce took more thought, but a hearty mix of lentils, chickpeas, walnuts, tomatoes, onions, parsley, and a rich tomato-based broth gave it the perfect depth and texture. Once everything was layered and topped with my creamy vegan béchamel, it baked into a firm, structured casserole that slices cleanly and delivers all the comforting flavors of Greek pastitsio.
I’ve made this for friends and family, and every time, I hear the same thing: “This tastes just like the real thing!” The good news is that you can prep ahead. The “meat” sauce and béchamel can be made in advance, so when it is time to cook, all that is left is boiling the pasta and layering everything together. A little planning goes a long way, making this completely doable even on busy nights.
This vegan pastitsio recipe has become a favorite in my home. It brings back childhood memories while giving my family a meal that fits the way we eat today.
🥘 Ingredients
While the ingredient list is a little long because of the layers in my vegan pastitsio, I promise every step is worth it. Here is what I use:

Meat Sauce Base: I use a mix of chickpeas, walnuts, and lentils to create a hearty, protein-rich filling. When blended, they give the perfect meaty texture without any meat.
Meat Sauce Seasonings: Onions, broth, tomatoes, parsley, tomato sauce, wine, salt, and pepper bring layers of flavor. Fresh tomatoes work best, but canned or bottled crushed tomatoes make a great substitute with a slightly tangier taste.
Pasta, Water, Tapioca Starch: I like using whole wheat or chickpea pasta for extra protein, but any tube-shaped pasta works. I save some pasta water and mix it with tapioca starch to help bind the layers together.
Plant-Based Milk: I use unsweetened almond milk but any dairy-free milk will work as long as it’s the unsweetened kind.
Vegan Parmesan: This adds a savory, cheesy flavor and is perfect for layering and topping.
Vegan Bechamel: I like using my homemade vegan bechamel recipe, but you can use a store-bought version as well.
🔪 How To Make
Making my vegetarian pastitsio is a labor of love, but every bite is worth it. In just over an hour and a few simple steps, you will have a hearty, comforting dish on your table.
Cook the Pasta: I preheat my oven to 350 degrees Fahrenheit, 175 Celsius. Then, I cook the pasta according to the package directions, but I take it off the heat 2 to 3 minutes early so it does not get mushy in the oven. I drain the pasta and set aside ½ cup of the pasta water for later.

Make Slurry: I mix 2 tablespoons of warm pasta water with 1 tablespoon of tapioca starch until smooth, then I set it aside.

Make Sauce Mixture: I pour the milk and the remaining pasta water into the same pot where I cooked the pasta and heat it over low heat. I add ¼ teaspoon of salt, then slowly whisk in the starch mixture to prevent clumping. It thickens gradually, taking on a texture similar to eggs. Once it reaches the right consistency, I turn off the heat.

Coat Pasta: I add the pasta and ¼ cup of Parmesan to the pot, stirring until the pasta is fully coated in the mixture. I taste and add more salt if needed, depending on the Parmesan I use. Then, I set it aside.

Start Making the Meat Sauce: I pulse the chickpeas and walnuts in a food processor until they are chopped into small pieces, then I set them aside.

Process Tomatoes: I chop the tomatoes in the food processor until they reach a smooth, sauce-like consistency.

Sauté Onions: I cook the onion with a drizzle of oil, or broth if oil-free, over medium heat until it softens. This takes about 5 minutes.

Add Lentils and Other Ingredients: I add the chopped chickpeas, walnuts, lentils, chopped tomatoes, and parsley to the pan. I sauté everything until the juice from the tomatoes has cooked off, which takes about 5 to 7 minutes.

Add Broth and Other Ingredients: I pour in 1 ½ cups of broth, tomato sauce, wine, salt, and pepper, then cover the pan and let it cook for about 8 to 10 minutes. I check occasionally to make sure it does not burn.

Continue Cooking: I uncover the pan and stir while checking the lentils for doneness. I let the sauce thicken, making sure it is not too dry. If needed, I add more broth to prevent it from burning.

Build the Pastitsio: I spread half of the pasta evenly across the bottom of the baking dish.

Add Meat Sauce: I spread the “meat sauce” evenly over the pasta, making sure it covers the top. I press it down firmly so it blends slightly with the pasta and helps secure the layers.

Add Cheese: I sprinkle ½ cup of vegan Parmesan evenly over the meat sauce.

Add Pasta: I spread the remaining pasta over the meat sauce, then press it down gently so it blends into the layer below and holds everything together.

Add Béchamel: I pour the béchamel over the top, spreading it evenly to cover the entire surface.

Finish: I sprinkle the remaining ½ cup of Parmesan evenly over the béchamel.

Bake, Cool, Serve: I bake the pastitsio for 35 to 40 minutes, until the edges turn golden and the center firms up. I let it cool for at least 30 minutes so the layers set before slicing and serving. Enjoy!

💭 Expert Tips
My #1 tip for making this Vegan Pastitsio recipe is to cook the pasta slightly al dente to prevent a mushy dish. Since it continues cooking in the oven, I boil it 2 to 3 minutes less than the package directions. This keeps the texture just right, so after baking, the pasta holds its shape and the layers stay firm.
Other Tips To Keep In Mind:
- Let the Pastitsio Rest Before Slicing: I let it cool for at least 30 minutes before cutting. This helps the layers firm up so it does not turn out too runny when served.
- Baking Dish Size: I use a 9-inch square baking dish for the best results. A smaller dish makes it taller, and a larger one makes it thinner, but any size will work.
- Pasta Quantity: I tested this recipe with 12 ounces of pasta. For a more filled dish, I use 16 ounces.
- Richer Flavor: Tossing the pasta in butter gives it a richer flavor. If I do this, I usually do not need to add extra salt.
- Lentil Type Matters: Green or brown lentils work best because they stay firm. Red lentils become too soft and will make the dish mushy.
- Chopping Tomatoes: A food processor makes chopping tomatoes quick and easy. If I do not have one, I just use a knife.
📖 Variations
This vegan pastitsio is my ultimate comfort food, and I love how easy it is to make my own. These are my easiest variations:
Gluten & Nut-Free: I use gluten-free pasta and swap the flour in the béchamel for a gluten-free alternative. I replace walnuts with sunflower seeds or leave them out entirely.
No Wine: I swap the ½ cup of wine for ½ cup of extra broth or 1 to 2 tablespoons of balsamic vinegar. This keeps the sauce rich while adding a little acidity.
Different Mix-Ins: I love adding ¼ cup of chopped sundried tomatoes, ¼ cup of chopped olives, or 1 cup of baby spinach for a Mediterranean twist. They blend perfectly into the “meat” sauce for extra flavor.
Make It Spicy: I add ¼ to ½ teaspoon of crushed red pepper flakes for a little heat. I adjust to taste for the perfect spice level.
🍽 Serving Suggestions
To be honest, nothing makes me happier than serving this vegetarian pastitsio with a few delicious plant-based dishes to complete the meal. Here are some of my favorites:
Appetizers: I love starting with something crispy and flavorful. Greek fries and my vegetarian Greek nachos are always a favorite and make the perfect way to kick off the meal.
Salads: A fresh salad adds the perfect balance to this hearty dish. I like serving my Greek vegan farro salad or my traditional Greek salad for a light and refreshing side.
Bread: Warm, fluffy bread is always a great addition. Vegan flatbread or soft vegan dinner rolls are perfect for soaking up every last bit of sauce.
🧊 Storage Directions
Refrigeration: I typically store pastitsio in an airtight container in the refrigerator for 3-5 days.
Freezing: If I need to store it for longer, I’ll place it in an airtight container and will wrap the container in plastic wrap before putting the lid on, and then I’ll freeze for up to 3 months.
Reheating: To reheat, I’ll bake in a 350°F oven for 25 minutes or until it’s heated in the center. Or you can quickly microwave smaller portions until warm.
❓Recipe FAQs
If my sauce looks too dry, I add a little more vegetable broth or tomato sauce while it cooks. If it is too watery, I let it simmer uncovered for a few extra minutes until it thickens.
I like to sprinkle a little extra vegan Parmesan or breadcrumbs on top before baking. For a golden finish, I bake it uncovered for the last 5 to 10 minutes or broil it for 1 to 2 minutes, keeping a close eye to prevent burning.
Absolutely! When I make the components for this vegan pastitsio from scratch, I like to prepare them ahead of time to make assembly easier on the day of serving. Here is how I do it:
1) I make the vegan béchamel sauce up to 5 days in advance and store in an airtight container. You can also keep it in the freezer for up to 3 months, just defrost in the fridge the day before assembling the dish.
2) The vegan Parmesan can be made and refrigerated for up to a week, and frozen for 3 months.
3) Prep the “meat” portion up to 3 days ahead of time and keep in an airtight container.
4) The day of let the sauces come to room temperature while you prep the pasta portion.
5) Assemble, bake, and enjoy!

🍲 More Vegan Greek Recipes!
Love this Vegan recipe? Please leave a 5-star rating 🌟 in the recipe below and/or a review in the comment section further down the page!
You can also FOLLOW ME on FACEBOOK, INSTAGRAM, and PINTEREST to see more delicious, healthy, family-friendly food, and if you have any questions, I’m here to help!
📋 Recipe Card
Vegan Pastitsio
Ingredients
- 1 pound tube shaped pasta , gluten free if needed (see note)
- ½ cup reserved pasta water from pasta
- 1 tablespoon tapioca starch , sub with cornstarch if preferred
- ½ cup dairy free milk of choice , can sub ¼ vegan butter (see note)
- ¼ teaspoon sea salt
- 1 ½ cups vegan Parmesan Cheese , see note
- 3 cups vegan Bechamel , double my Bechamel recipe (you will have a little left over)
“Meat” sauce:
- 1 ½ cups cooked chickpeas , drained and rinsed
- ¼ cup chopped walnuts
- 1 ½ cups chopped sweet or yellow onion
- drizzle of oil or veggie broth , to sauté
- ½ cup dry lentils , green or brown work best (see note)
- 2 cups chopped fresh tomatoes , about 4 medium sized tomatoes
- ½ cup chopped parsley
- 1 ½ cups veggie broth
- 3 tablespoons tomato sauce
- ½ cup white cooking wine , omit if preferred but flavor won't be as rich
- ½ – 1 teaspoon sea salt , start with ½ and taste before adding more
- ½ teaspoon ground black pepper
Equipment
- Regular Blender , to make bechamel if using homemade
Instructions
- Preheat oven to 350 F/ 175 C.
- Cook pasta according to package directions, but cook 2-3 minutes less so that it doesn’t get mushy when baked in the pan.
- Drain pasta reserving 1/2 cup pasta water.
- Make a slurry using 2 tablespoons of the warm pasta water and the 1 tablespoon of tapioca, set aside.
- Put the milk and rest of the pasta water into the pot where you cooked the pasta and heat it over low heat. Add ¼ teaspoon of salt. Slowly add in the starch mixture as you whisk it so it doesn’t clump. It should slowly thicken and get somewhat egg like. Turn off the heat.
- Add the pasta and ¼ cup of the Parmesan and mix around so the pasta is covered in the mixture. Taste and add more salt if needed, this will depend on the Parmesan you use. Set aside.
Make the “meat sauce:
- Chop the chickpeas and walnuts into smaller pieces using a food processor. Set aside.
- Sauté onion with oil, or broth if oil free, over medium heat until onion is soft. About 5 minutes.
- Add the chopped chickpeas and walnuts, lentils, chopped tomatoes and parsley and saute until the juice from the tomatoes is gone. About 5-7 minutes.
- Add 1 ½ cups of the broth, tomato sauce, wine, salt and pepper and cook covered for about 8-10 minutes. Don’t let it burn.
- Uncover, continue to stir and cook, checking the consistency and doneness of the lentils until the lentils are cooked and sauce is thickened but not dry. Add more broth into the pan as needed to make sure it doesn’t burn.
Build the Pastitsio in a square baking dish as follows:
- Add half the pasta to the bottom of the baking dish.
- Cover in the “meat sauce” and spread so it covers the top. Press it down so it’s nice and firm. This helps it mix into the pasta a little to secure the layers.
- Sprinkle with ½ cup of the Parmesan.
- Add the other half of the pasta on top. Press down so it blends into the “meat” portion and secures the layers.
- Cover with the Bechamel.
- Sprinkle with the last ½ cup of the Parmesan.
- Bake for 35-40 minutes, until browning on the edges and the center feels like it has firmed up.
- Let cool and set for at least 30 minutes before cutting and serving for best results. Enjoy!
Notes
-
- My #1 tip for making this Vegan Pastitsio recipe is to cook the pasta slightly al dente to prevent a mushy dish. Since it continues cooking in the oven, I boil it 2 to 3 minutes less than the package directions. This keeps the texture just right, so after baking, the pasta holds its shape and the layers stay firm.
- Let the Pastitsio Rest Before Slicing: I let it cool for at least 30 minutes before cutting. This helps the layers firm up so it does not turn out too runny when served.
-
- Baking Dish Size: I use a 9-inch square baking dish for the best results. A smaller dish makes it taller, and a larger one makes it thinner, but any size will work.
-
- Pasta Quantity: I tested this recipe with 12 ounces of pasta. For a more filled dish, I use 16 ounces.
-
- Richer Flavor: Tossing the pasta in butter gives it a richer flavor. If I do this, I usually do not need to add extra salt.
-
- Lentil Type Matters: Green or brown lentils work best because they stay firm. Red lentils become too soft and will make the dish mushy.
-
- Chopping Tomatoes: A food processor makes chopping tomatoes quick and easy. If I do not have one, I just use a knife.