Hearty Vegan Shepherd’s Pie with Lentils and Mushrooms
This vegan shepherd’s pie is the real deal: a savory lentil and mushroom filling cooked in a rich gravy, topped with creamy mashed potatoes, and baked until golden and bubbling. It’s hearty, cozy, and completely plant-based.

It’s the kind of dish that feels like a Sunday dinner, but it’s simple enough for a weeknight. The lentils give it that meaty texture without any meat substitutes, and the mushrooms add a deep, earthy flavor that makes the whole thing taste like it’s been simmering all day.
Why This Vegan Shepherd’s Pie Works
The filling gets its savory backbone from a mix of lentils, mushrooms, and tamari, with a little tomato paste for richness. The mashed potato topping is fluffy on the inside and crispy on the edges.
I keep coming back to this one because it’s completely plant-based but still feels substantial and cozy. It’s the dish I bring to potlucks when I want to please everyone, and it’s never failed me.
Ingredients

- 1 tbsp olive oil: for sautéing
- 1 medium onion, diced: yellow or white
- 2 carrots, peeled and diced
- 2 celery stalks, diced
- 8 oz cremini mushrooms, finely chopped: or white button mushrooms
- 3 cloves garlic, minced
- 2 tbsp tomato paste
- 1 tbsp tamari: soy sauce works too
- 1 tsp dried thyme
- 1 tsp dried rosemary
- 1/2 cup dry brown or green lentils, rinsed: do not pre-cook; they’ll cook in the liquid
- 2 cups vegetable broth: choose a good-quality one for best flavor
- 2 tbsp all-purpose flour: or a gluten-free blend
- 1 cup frozen peas
- Salt and black pepper: to taste
- 2 lbs russet potatoes (about 4 medium), peeled and cut into chunks: for the topping
- 1/4 cup unsweetened plain plant-based milk: oat or soy work well
- 2 tbsp vegan butter
- 1/4 tsp salt: for the mashed potatoes, plus more for the pasta water
Variations / Substitutions
- Use chickpeas instead of lentils: drain and rinse a 15-oz can, add them with the peas at the end, and reduce the broth to 1 cup. The texture will be chunkier.
- Substitute gluten-free flour: any 1:1 gluten-free blend works, or use 1 tbsp cornstarch mixed with 2 tbsp cold water added at the end.
- Add a splash of acidity: a teaspoon of balsamic vinegar or a squeeze of lemon juice stirred in right before topping brightens the whole dish.
- Use sweet potatoes for the topping: swap half the russets for sweet potatoes, or go all sweet potato for a slightly sweeter, orange-hued mash.
For another cozy vegan dinner, try my Lentil and Mushroom Bolognese.
How To Make Vegan Shepherd’s Pie
Step 1: Boil the Potatoes

Place the potato chunks in a large pot and cover with cold water by an inch. Stir in a big pinch of salt. Bring to a boil, then lower the heat and simmer for 12 to 15 minutes, until a fork slides in easily.
Drain them well and return them to the pot to let any excess moisture steam off for a minute. Then mash them with the 1/4 cup plant milk, 2 tbsp vegan butter, and 1/4 tsp salt until smooth and creamy. Keep them warm while you work on the filling.
Step 2: Sauté the Vegetables

While the potatoes cook, warm the 1 tbsp olive oil in a large oven-safe skillet or Dutch oven over medium heat. Add the diced onion, carrots, and celery, and cook, stirring occasionally, for about 6 to 8 minutes, until they soften.
Stir in the chopped mushrooms and a pinch of salt. Let them cook for another 5 minutes, until they release their liquid and it mostly evaporates. The mushrooms should look darker and smell earthy.
Step 3: Simmer the Lentil Filling

Add the minced garlic, tomato paste, tamari, thyme, and rosemary to the pan. Cook for 1 minute, stirring constantly, until fragrant. Sprinkle in the 2 tbsp flour and stir to coat everything, then pour in the 1/2 cup lentils and 2 cups vegetable broth.
Bring the mixture to a boil, then reduce the heat so it simmers gently. Cook, uncovered, for 20 to 25 minutes, stirring now and then, until the lentils are tender and the gravy has thickened. The last few minutes, stir in the frozen peas. Taste and add salt and black pepper as needed.
Step 4: Spread the Potato Topping

Preheat the oven to 400°F (200°C) if you haven’t already. Spoon the mashed potatoes over the filling in the skillet. Start with dollops around the edges, then fill in the center, and use the back of a spoon or a spatula to spread them out to the edges, sealing the filling in.
You can leave the top rough or use a fork to create ridges; those peaks will get nice and crispy. If your skillet isn’t oven-safe, transfer the filling to a 9×13-inch baking dish first.
Step 5: Bake the Shepherd’s Pie

Place the skillet (or baking dish) on a baking sheet to catch any drips, and slide it into the hot oven. Bake for 25 to 30 minutes, until the top is deeply golden and the filling is bubbling up around the edges.
Let the pie rest for 5 minutes before you scoop into it. That little bit of time helps the filling set so it doesn’t run everywhere. Serve it hot straight from the skillet.
Tips for the Best Vegan Shepherd’s Pie
- Choose the right lentils: Brown or green lentils hold their shape and give a meaty bite. Red lentils turn mushy, so skip them for this recipe.
- Use a ricer or food mill for the smoothest mash: It keeps the potatoes fluffy and lump-free. If you use a hand masher, just be sure to work out all the lumps before adding the liquid.
- Make it ahead: Assemble the pie completely, cover, and refrigerate for up to 2 days. Bake at 400°F for 35 to 40 minutes, until heated through and bubbly.
- Avoid a soggy filling: Simmer the lentil mixture uncovered so the liquid reduces; a thin filling will soak into the potato crust and make it heavy.
Storing and Reheating Leftovers
- Refrigerate: Store leftovers in an airtight container in the fridge for up to 4 days.
- Reheating: Reheat individual portions in the microwave, or cover the whole dish with foil and warm in a 350°F oven for 15 to 20 minutes, until hot all the way through.
What To Serve With Vegan Shepherd’s Pie
A crisp, lemony salad on the side cuts through the richness of the pie. I like to toss arugula with a simple vinaigrette. For something green and warm, steamed green beans or roasted asparagus are perfect.
Frequently Asked Questions
Can I use canned lentils instead of dry?
Yes, use a 15-oz can of drained and rinsed lentils, and reduce the broth to 1/2 cup. Simmer just until heated through, about 5 minutes; the gravy will be a little thinner but still works.
Can I freeze vegan shepherd’s pie?
Yes, after baking and cooling completely, wrap tightly and freeze for up to 3 months. Thaw overnight in the fridge, then reheat in a 350°F oven until hot.
What can I use instead of mushrooms?
If you don’t like mushrooms, omit them and add an extra carrot and celery, or use 1 cup of cooked brown lentils and a handful of chopped walnuts for texture.
Can I make this oil-free?
Yes, sauté the vegetables in a few tablespoons of vegetable broth instead of oil, adding more as needed to prevent sticking. The mashed potatoes can use extra plant milk and no butter.
My filling is too watery, how can I fix it?
If it still seems thin after the simmering time, mash some of the lentils against the side of the pan to release their starch and thicken the mixture. A small slurry of flour and water stirred in and simmered for a minute also helps.

Vegan Shepherd’s Pie Recipe
Ingredients
Method
- Boil the potatoes in salted water for 12 to 15 minutes until tender. Drain, steam dry, and mash with plant milk, vegan butter, and 1/4 tsp salt. Keep warm.
- In a large oven-safe skillet, heat oil over medium heat. Cook onion, carrots, and celery for 6 to 8 minutes until soft. Add mushrooms and a pinch of salt, and cook 5 minutes more until liquid evaporates.
- Stir in garlic, tomato paste, tamari, thyme, and rosemary; cook 1 minute. Sprinkle in flour, coat vegetables, then add lentils and broth. Bring to a boil, reduce to a simmer, and cook uncovered 20 to 25 minutes, stirring occasionally, until lentils are tender and gravy thick. Stir in peas and season with salt and pepper.
- Preheat oven to 400°F (200°C). Spread the mashed potatoes over the filling, sealing to the edges. Create ridges with a fork if desired.
- Place on a baking sheet and bake 25 to 30 minutes until golden and bubbling. Let rest 5 minutes before serving.
