One of my favorite cozy winter recipes is this Vegan Lentil Shepherd’s Pie. I came up with this recipe when I realized that the shepherd’s pie recipe from my cookbook, The Vegan Instant Pot Cookbook was so popular.
It’s hearty winter comfort food that is packed with bold and rich flavors but is sneakily healthy. It’s impressive enough to serve as a holiday main dish, but works great for any cold weather dinner.
This lentil shepherd’s pie starts with a sticky, umami-packed lentil and onion filling. It gets topped with a buttery mashed potato-cauliflower topping, then baked in the oven until perfectly golden brown. It’s a community favorite adored by both vegans and omnivores alike!
In this post:
1. Ingredients in Lentil Shepherd’s Pie
2. Step-by-step Instructions
3. Tips for making this recipe
4. Frequently Asked Questions
5. Video: How to make Vegan Shepherd’s Pie

Ingredients in Lentil Shepherd’s Pie
A traditional shepherd’s pie fillings contain onions, carrots, celery, peas, and of course meat (typically lamb).
My plant-based version starts with brown (or green) lentils and onions, which get cooked down until beautifully browned, alongside plenty of garlic. These ingredients pack in so much savory depth of flavor that there’s no need for carrots and celery. Also, I hate mushy peas.
A few other ingredients help take this recipe over the top:
- Tomato Paste gets cooked down, bringing a subtle tangy sweetness and amping up the umami.
- Red wine enhances the meaty earthiness of the lentils (see FAQ below for substitutes if you can’t have red wine).
- Tamari (or soy sauce) and vegan Worcestershire sauce (optional) add additional bold savoriness.
- Balsamic vinegar brings a slight sweet tang that balances everything out.
- And tahini adds a nutty creaminess that pulls the filling together
As for the mashed potato-cauliflower topping, I prefer Russet Potatoes because their high-starch content makes for the fluffiest mashed potatoes. This is especially useful to balance the cauliflower, which is not starchy.


Step-by-step Instructions
Heat the olive oil in a 12-inch ovenproof sauté pan over medium to medium-high heat. Cook the onions until nicely browned, 8-10 minutes. Then add the garlic and fresh herbs and cook for 2 minutes.
Add the tomato paste and cook until darkened (2-3 minutes), then stir into the onions.




Deglaze the pan with the red wine. Cook for 3-4 minutes until the mixture is jammy.
Add the vegetable broth, lentils, bay leaves, and paprika. Simmer for 30 minutes until lentils are al dente.




Finish the lentil filling by stirring in tahini, balsamic vinegar, tamari, vegan Worcestershire sauce (optional), and salt and pepper.
Stir well until the lentils are creamy and thickened.


While the lentils are cooking, make the mashed potato-cauliflower topping. Boil the cauliflower florets and potatoes in boiling salted water with rosemary for 15 minutes until fork tender. Drain and dry thoroughly.
Add the vegan butter, plant milk, nutritional yeast, salt and pepper to the boiled cauliflower and potatoes. Use a potato masher or ricer (or an electric mixer on low speed) to mash until smooth.


Spoon the mashed potato-cauliflower topping on the lentil filling and gently spread out out with an offset or silicone spatula. Drizzle the top with extra virgin olive oil, fresh thyme leaves, and black pepper.
Bak for 20 minutes at 375°F/190°C. Afterwards, pop under the broiler for a few minutes for extra browning on top.


In the mood for even more cold weather vegan comfort food? Give these a try:
– Creamy Mushroom and Black Beluga Lentil Stew
– The Best Vegan Mashed Potatoes
– Thai Butternut Squash Chickpea Curry
Tips for making this recipe
How to avoid a watery mashed potato-cauliflower topping.
- Once the cauliflower and potatoes are done boiling, drain them thoroughly in a colander. Let the potatoes sit in the colander to dry out while you work on the cauliflower.
- Transfer the cauliflower to a fine-mesh sieve, and place a bowl on top of the boiled cauliflower. Push down and squeeze out as much water as you can. There will be a lot more water than you think! Or wrap the cauliflower in a clean dish towel and tie it up. Then squeeze it into a ball and wring out all of the excess water.
How to make this recipe more indulgent (great for a holiday meal).
- If you taste the mashed potato filling and think it needs a bit more buttery goodness, add some more a little more vegan butter!
- Or just use all potatoes and skip the cauliflower. My Miso Butter Mashed Potatoes take this recipe over the top.
How to make this recipe as efficiently as possible.
- First, prep the lentil filling ingredients. Second, prep the topping ingredients.
- Third, start cooking the lentil filling. While that’s simmering, boil the potatoes and cauliflower + preheat the oven.
- Next, drain and dry the potatoes & cauliflower. And make the mashed potato-cauliflower topping.
- Assemble the shepherd’s pie and bake it off.

Frequently Asked Questions
If you do not consume alcohol, skip the step of deglazing the pan with red wine. Instead, just start deglazing the pan with the vegetable broth. It helps to use a vegetable broth that is quite flavorful and rich (a homemade one, or my favorites are Imagine Organic and this vegan “chicken” broth seasoning).
While I do think the wine adds something special, many readers have made this recipe without the wine with great results.
I recommend Russet potatoes when I make the topping with cauliflower. They are fluffier and work better with the cauliflower than, say, Yukon Golds. But if you make a mashed potato-only topping, either variety works great.
30 minutes should be enough time to cook your lentils al dente, but not overdone or soft. It’s okay if the lentils feel firmer than you’d expect, as they’ll also cook again in the oven.
Make the Lentil Filling in the largest skillet you have and then transfer it to a large (3 quart/3 liter) baking dish. Spread the topping on and bake as instructed.
Store leftovers in an airtight container in the fridge for up to 4 days. Or, in the freezer, for up to 3 months.
To reheat, transfer portioned out leftovers to an ovenproof dish and tent with foil. Heat at 325°F/163°C until lentils and potato-cauliflower topping are both warmed through.
If frozen, I recommend allowing the shepherd’s pie to thaw before reheating (otherwise, the potato-cauliflower topping can be a bit icy and lend watery results).
– A hunk of rustic multigrain bread or sourdough
– A fall or winter salad like this Roasted Butternut Squash Kale Salad or this Kale and Brussels Sprouts Salad
– Steamed or lightly sauteed broccoli or green beans

Watch! How to make Lentil Shepherd’s Pie
My YouTube video is packed with tips so give it a look if you’re interested in learning more!
If you love this Lentil Shepherd’s Pie recipe, be sure to rate and review the recipe below :)

Big Vegan Flavor
Techniques and 150 recipes to master vegan cooking.
The Best Vegan Lentil Shepherd’s Pie

Ingredients
Lentil Filling
- 1 tablespoon olive oil
- 3 large yellow onions, diced
- 8 cloves garlic minced (use less if you’re not a huge fan of garlic)
- 1 tablespoon fresh thyme leaves, roughly chopped
- 2 teaspoons fresh rosemary leaves, roughly chopped
- 3 tablespoons tomato paste
- 1/2 cup (120 mL) dry red wine (such as Pinot Noir or Malbec)*
- 1 1/2 cups (10 ounces / 285g) green lentils (or brown lentils)
- 3 3/4 cups (900 mL) vegetable broth
- 2 bay leaves
- 1 1/2 teaspoons sweet or hot paprika
- 1/4 cup (56g) smooth tahini**
- 1 tablespoon tamari (or soy sauce)***
- 1 tablespoon good-quality balsamic vinegar
- 2 teaspoons vegan Worcestershire sauce (optional)****
- Plenty of kosher salt or sea salt (I used 1 1/2 – 2 teaspoons kosher salt)
- Freshly cracked black pepper to taste
Mashed Potato Topping
- 20 ounces (680g) Russet potatoes
- 16 ounces (454g) cauliflower, cut into large florets
- 1 1/2 teaspoons kosher salt, plus more to taste
- 1 rosemary sprig (optional)
- 4 tablespoons vegan butter, softened at room temperature (or olive oil)
- 1/2 cup (120 mL) “lite” coconut milk*****
- 1 tablespoon nutritional yeast
- Freshly cracked black pepper to taste
Optional finishes and garnishes
- Extra virgin oil for baking and finishing
- Flaky sea salt and black pepper
- Fresh thyme leaves
- Chopped flat-leaf parsley
Instructions
- Make the Lentil Filling. Heat the olive oil in an ovenproof 12-inch skillet over medium to medium-high heat until hot. If you don’t have an ovenproof skillet, you’ll need to transfer the cooked lentil filling to a baking dish when it’s time to bake.
- Add the onions with a couple pinches of salt and sauté for 8-10 minutes, or until most of the onions are browned. Stir occasionally to prevent burning, but not too often so that they can brown. Add the garlic, thyme and rosemary and cook for 2 minutes, stirring frequently to prevent burning.
- Push the onions to the edges of the pan so there’s an empty space in the middle of the pan. Add the tomato paste into the empty space and stir for 2-3 minutes, or until it darkens in color. Reduce the heat to medium, as needed.
- Pour in the red wine and deglaze the pan, stirring up any browned bits, until the liquid has mostly evaporated and the smell of alcohol has dissipated, about 3-4 minutes.
- Add the vegetable broth, along with the lentils, bay leaves, and paprika. Stir to combine and increase the heat to bring to a boil. Once boiling, reduce heat to maintain a rapid simmer, and simmer until the lentils are just tender and most of the liquid has been absorbed, 25-30 minutes.
- Turn the heat to low. Add the tahini, tamari, balsamic vinegar, and vegan Worcestershire sauce (if using). Stir until well incorporated. Taste for seasonings, adding a generous amount of salt (I used about 1 teaspoon kosher salt) and black pepper. Set aside.
- Make the Mashed Potato Topping. Peel the Russet potatoes and then rinse them under cold water. Chop the potatoes into eighths.
- Place the potatoes and cauliflower florets in a large saucepan or Dutch oven and add just enough water to cover. Add 1 1/2 teaspoons kosher salt and stir to combine. Place the rosemary sprig on top. Bring to a boil and cook until both potatoes and cauliflower are fork-tender and are very soft when poked, about 15 minutes.
- Thoroughly drain the potatoes and cauliflower in a colander and discard the rosemary sprig. For the potatoes, pat them dry with paper towels or a clean dish towel. For the cauliflower, you’ll need to squeeze out the excess water or it’ll be very watery.NOTE: See the “tips” section in the post for details on how to squeeze out the excess water.
- Return the vegetables to the saucepan or transfer them to a large bowl. Add in the softened vegan butter, lite coconut milk, nutritional yeast, along with salt and black pepper to taste. You can mash everything together using a handheld potato masher, but I use an immersion blender. Taste for seasonings, adding more salt as needed (I used about 1 teaspoon kosher salt).
- Assemble the Shepherd’s Pie. Preheat the oven to 375°F/190°C. If your skillet is ovenproof and has enough space, leave the Lentil Filling in there. If not, transfer it to a large (3 quart/3 liter) baking dish. Smooth the Lentil Filling out. Then, spoon and carefully spread out the Mashed Potato Topping on top, covering the whole surface. For more flavor, drizzle the top with extra virgin olive oil and some extra pinches of salt, pepper, and fresh thyme leaves.
- Bake for 20 minutes, or until the lentil filling starts to bubble up. Remove from the oven and turn on your oven’s broiler. Place the pan under the broiler for a few minutes until the crust is golden brown. To finish, drizzle with more olive oil and garnish with fresh parsley, if desired.
- Note: if you want the pie to solidify more, allow it to rest for at least 20 minutes in the pan. Store any leftovers in an airtight container in the fridge for up to 4 days.
Notes
This was so delicious! I made it for Christmas Day and everyone loved it (including some people who eat meat). They couldn’t believe it was vegan!
Wow- that’s so great to hear, Kelly! :) Thanks for sharing!
I’m curious if anyone has prepped it over night ie done everything except bake it in the oven, popped it in the fridge and then baked it the next day? Would I need to leave it out longer to warm up first or possibly bake it for longer? I was hoping to prep it tonight so I don’t have to do it all tomorrow, since the kitchen will be busy. I just want to pop it in the oven tomorrow. Any tips?
Hi Paul, sorry we didn’t get to this in time! How did it go?
I cooked it the night before and then microwaved it on Christmas Day and everyone loved it.
I cant wait to make this! Could canned or steamed lentils be used?
Hi Donna, we haven’t tried using canned or steamed lentils in this recipe, but we think it could work with pretty decent results. You’d just need to omit the veggie broth and bay leaves, and add just enough broth to moisten the lentils (the filling should be thick and saucy, not watery). Enjoy and please let us know how it turns out!
This really is the best shepherd’s pie recipe I’ve tried. I have made it many, many times. It’s just as great for Christmas dinner as it is for an easy, nutritious weeknight meal. I like to add some soy or pea-based “meat”, sautéing it with the onions, but the recipe is excellent and hearty without it.
Thanks for sharing, Juliana! We are glad you enjoyed the recipe.
Hoping to make this but someone has a terrible potato allergy. Would sweet potatoes be good with cauliflower? I’ve never tried. Thanks!
Hi Stephanie, we think sweet potatoes may be too sweet for the savory filling. I’d suggest using butternut squash, or your winter squash of choice instead. We hope this works out wonderfully!
Great recipe. I made it today, again, for about the 4th time. I make it pretty much as per instructions, but I steam the vegetables and I use whatever non-dairy milk I have open. Today it was almond. It always turns out delicious.
I have made a number of your recipes such as your lentil bolognese and moussaka… and a few desserts.
I’ll take this opportunity to say that it’s a pleasure using your recipes. Your instructions are always very clear and precise, you’re a real professional.
Thank you!!!
We’re over the moon to hear you are a big fan of the recipes, Vardit. Thanks for your kind words!
I trialled this recipe yesterday (for a big family festive gathering next week), it worked perfectly and was the most delicious plant based lentil shepherd’s pie I’ve made. We don’t eat onions so I swapped in some celery and carrots, and left out the Worcestershire sauce and it was still super tasty. Now just need to scale it up and keep all the deliciousness!
Hi Dawn, Thank you so much for such a fantastic review! Appreciate you taking the time!
I think it would help to add some vegetables, but haven’t done so yet.
We appreciate the feedback, Renate. We hope you enjoyed the recipe otherwise!
The cauliflower/potato mash is incredible. To save time, I use vegan meat sautéed with tomato paste and red wine.
Renate, So glad to hear you loved this recipe!
Could I add mushrooms and other veggies to this? I’d add the mushrooms a few minutes after the onions. Might also want to add some frozen veggies like peas and chopped fresh or frozen carrots.
Sure, Erin! You should chop them up fairly finely, and then you can add them after sauteing the onions, and cook them until softened. Then continue with adding garlic, etc. You might need to add a drizzle of olive oil since there will be more vegetables.
If adding mushrooms, I’d scale back on the onions from 3 to 2. That there isn’t way more filling than topping. While I don’t love frozen peas, you can certainly stir some into the lentil filling until warmed through. Or, if you want to use fresh carrots, dice a few in place of one of the onions.
If using vegan crumbled beef instead of lentils, how would you advise changing the recipe?
I use vegan meat, sautéed with tomato paste and red wine. the cauliflower/potato mash is the same.
Hi KN, add the crumbled beef when you’d add the lentils. You won’t need to add the broth (or bay leaves) since that’s used to cook the lentils. You can add the crumbled beef and paprika, pan fry until the beef crumbles are cooked or browned, and add a small amount of broth or water to get a thick, saucy consistency. Then proceed with step 6.
While this recipe take some time to prepare it’s well worth it! My husband appreciated the lower carb mashed “potato” topping with cauliflower (great combo!). We enjoyed the meal with the wine used for cooking, an Italian Barbaresco we brought home from our trip to Piedmont! Another 5 star recipe!
Awesome, Ann. Thanks for your comment and for taking the time to review!
3 onions? We have some little ones who are not keen on onions. Is there anything I can substitute or reduce the amount? I’d love to try this but with much less onion.
I thought it seemed like a lot too. I haven’t made this yet, but id probably just use one large onion or 2 medium onions. I might try adding some mushrooms and other veggies too.
Hi Anne, sure, you can try with one onion plus a few carrots and a few ribs of celery.
Pretty easy. Followed the recipe exactly. I was really good. A lot of flavor. Can’t think of any reason to change anything.
Awesome, Lorii. Thanks for your comment and for taking the time to review!
I just made this for Thanksgiving as a main dish for my vegetarian husband and I and it was decadent! So good and well worth the time it takes. This recipe is a labor of love 💗
We appreciate your feedback and support, Laurén. Thank you for leaving a review!
I made this for Thanksgiving last year and it was a huge hit. Made it another handful of times and planning to make tomorrow as well. Thanks for another amazing recipe, Nisha and the RPL team!
Can i cook this a day ahead?
Hi D, sorry for the late reply here, but yes!
You can definitely prep the lentils and potato/cauliflower mash ahead of time if you’d like!
Just give them a good stir before adding them both to the baking dish. If the cauliflower has made the mashed potato mixture a bit watery, just strain it in a colander or sieve before using.
We hope it was a hit once again, Joanie! Happy late Thanksgiving :)
I made this before and loved it. I’m making some meals for a friend. Do you think this can be frozen?
Hi Diane, glad to hear that! The lentil filling will freeze well, but the cauliflower potato mash topping might get watery, and the texture won’t be as creamy or fluffy. If possible, I’d freeze the lentil topping but make the mash separately a day or two before serving.
Thank you so much! Happy Thanksgiving
Hi Diane, thank you! We hope you had a lovely Thanksgiving :)
This looks delicious! I would love to make this for Thanksgiving. Do you think I can prep the lentils and mashed potatoes the day before and then bake on thanksgiving day? How do you think this would alter the bake times? Thank you!!!
Hi Alice, I’m delighted you want to make this recipe for Thanksgiving!
You can definitely prep the lentils and potato/cauliflowermash ahead of time if you’d like!
Just give them a good stir before adding them both to the baking dish. If the cauliflower has made the mashed potato mixture a bit watery, just strain it in a colander or sieve before using. Good luck and have a lovely holiday!
Hey Nisha, I just followed your advice and made the two parts early. This is going to save me so much time tomorrow.
I’ve been following you ever since I went vegan two years ago. Your recipes are amazing and I make them all the time. Thank you for providing them. I hope you have a wonderful Thanksgiving!
Hi Brian- thanks for the lovely words :) I’ll be sure to pass the kind message along to Nisha. We hope you had a great Thanksgiving as well!
This recipe is a winner!! I served it, hopping to have some leftovers to freeze, but I only had a small piece left over. I added a small amount of diced carrots and two cups of sliced mushrooms, and next time I might throw in some frozen peas to make it more like a traditional Shepherd’s Pie. But it was SO GOOD— full of rich flavours.
We’re over the moon to hear you enjoyed the recipe, Wendy. Thanks for your kind words!
Yum I’m going to try that with mushrooms, peas and carrots and maybe a little less onion
I’ve made this recipe more times than I can count – for holiday meals, birthdays, you name it. It’s always a hit!
Awesome, Jenn. Thanks for your comment and for taking the time to review!