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

healthy vegan lentil shepherd's pie - flat lay in skillet

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

Want to save this recipe?
Enter your email address and we’ll send it straight to your inbox. Plus, we’ll send you new posts and recipes!

Tips for making this recipe

How to avoid a watery mashed potato-cauliflower topping.

  1. 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.
  2. 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).

  1. If you taste the mashed potato filling and think it needs a bit more buttery goodness, add some more a little more vegan butter!
  2. 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.
slice of vegan lentil shepherd's pie on plate

Frequently Asked Questions

Can you substitute the red wine?

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.

What kind of potatoes do you recommend for the topping?

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.

Are my lentils cooked through?

30 minutes should be enough time to cook green or brown 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.

Some common reasons why your lentils may not be cooked through in 30 minutes:

(1) You didn’t rapidly simmer the lentils. A rapid simmer = constant, steady bubbles across most of the pan.
(2) Your lentils are older than 1 to 2 years (old lentils take a long time to soften).
(3) You’re using French green lentils instead of regular green lentils (or brown lentils). These take longer to cook and retain more of a bite.

If your lentils aren’t al dente within 30 minutes, add another splash of broth (or water), cover the pan, and simmer for 5 to 10 minutes, then check.

What if I don’t have a 12-inch ovenproof skillet?

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.

How do you store and reheat shepherd’s pie? Can you freeze it?

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).

What should I serve this shepherd’s pie with?

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

closeup of vegan shepherd's pie in a skillet

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!

A perfect vegan meal for cold winter days ❄️
A perfect vegan meal for cold winter days ❄️

If you love this Lentil Shepherd’s Pie recipe, be sure to rate and review the recipe below 🙂

Introducing

Big Vegan Flavor

Techniques and 150 recipes to master vegan cooking.

The Best Vegan Lentil Shepherd’s Pie

Prep: 20 minutes
Cook: 1 hour 30 minutes
Total: 1 hour 50 minutes
Servings: 8
5 from 655 votes

Made it? Click the stars to leave a review!

This is the best vegan shepherd’s pie you’ll try! A hearty, flavor-packed lentil and sticky onion filling meets fluffy mashed potatoes and cauliflower in this protein-rich plant-based dinner. The perfect healthy comfort food for winter!
Save this recipe!
Get this sent to your inbox, plus get new recipes from us every week!

Ingredients

Lentil Filling

  • 2 tablespoons (28g) olive oil
  • 3 large yellow onions, diced (2 lbs / 900g diced onions)
  • Diamond Crystal kosher salt & freshly cracked black pepper (see Note 1)
  • 8 cloves garlic, finely chopped (~1 oz / 28g)
  • 1 tablespoon (2-3g) fresh thyme leaves, roughly chopped
  • 2 teaspoons (2g) fresh rosemary leaves, roughly chopped
  • 3 tablespoons (45g) tomato paste
  • 1/2 cup (120 mL) dry red wine, such as Pinot Noir or Malbec (see Note 2)
  • 1 1/2 cups (10 ounces / 285g) green 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 or well-stirred tahini
  • 1 tablespoon tamari or soy sauce (see Note 3)
  • 1 tablespoon aged balsamic vinegar
  • 2 teaspoons vegan Worcestershire sauce (optional, see Note 4)

Mashed Potato Topping

  • 20 ounces (680g) Russet potatoes (see Note 5)
  • 16 ounces (450g) cauliflower, cut into large florets
  • 1 1/2 teaspoons Diamond Crystal kosher salt, plus more to taste
  • 1 fresh rosemary sprig (optional)
  • 1/4 cup (56g) vegan butter, softened at room temperature (or olive oil)
  • 1/2 cup (120 mL) “lite” coconut milk (see Note 6 for alternatives)
  • 1 tablespoon nutritional yeast

Optional finishes and garnishes

  • Extra virgin oil for baking and finishing
  • Chopped flat-leaf parsley

Instructions 

  • Make the Lentil Filling. Heat the olive oil in an ovenproof* 12-inch sauté pan over medium-high heat until shimmering.
    *NOTE: If your pan isn't ovenproof, just transfer the cooked filling to a baking pan before baking.
  • Add the onions with a couple pinches of salt and sauté for 10 to 12 minutes, or until most of the onions are browned, stirring occasionally to prevent burning. If they brown unevenly, add a splash of water and/or reduce the heat a touch. Add the garlic, thyme, and rosemary, stirring frequently for 2 minutes.
  • Add the tomato paste and stir very frequently for 2 to 3 minutes, or until it darkens in color. Reduce the heat to medium, as needed to prevent burning.
  • 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 cooked off, 3 to 4 minutes.
  • Stir in the vegetable broth, lentils, bay leaves, and paprika. Bring to a boil, then reduce the heat to maintain a rapid simmer—constant, steady bubbles across most of the pan.
    Cook at a rapid simmer until the lentils are just tender (not super soft) and most of the liquid has been absorbed, about 30 minutes (see Note 7).
  • Turn the heat to low. Add the tahini, tamari, balsamic vinegar, and vegan Worcestershire sauce (if using). Stir until well incorporated and creamy. Taste for seasonings, adding a generous amount of salt (I use about 1 teaspoon kosher salt) and black pepper to taste. Set aside.
  • Make the Mashed Potato Topping. Peel the 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 pan or transfer them to a large bowl. Add in the softened butter, plant milk, and nutritional yeast. Season with salt and pepper to taste.
    Mash using either a potato masher or immersion blender (see Note 5). Taste for seasonings, adding more salt as needed (I used about 1 teaspoon kosher salt).
  • Assemble. 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 the Mashed Potato Topping on top, spreading it out to cover the whole surface.
    Drizzle the top with extra virgin olive oil and a few pinches of salt and pepper.
  • Bake for 20 minutes, or until the lentil filling starts to bubble up. Remove from the oven and turn on the 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 (or freeze up to 3 months).

Video

A perfect vegan meal for cold winter days ❄️
A perfect vegan meal for cold winter days ❄️

Notes

  1. I use Diamond Crystal Kosher Salt, which is less salty other salts, teaspoon for teaspoon. If using sea salt, use slightly more than half the amount of salt listed in the recipe. If using table salt, use half the amount. 
  2. If you do not consume alcohol, just skip this step and deglaze the pan, as needed, with the vegetable broth instead of wine. You may want to add a little more balsamic vinegar to taste at the end.
  3. To keep this dish soy-free, omit the tamari and just add a bit more salt to taste.
  4. Vegan worcestershire sauce brands include: Annie’s Homegrown, Whole Foods 365, Sprouts, Simple Truth, and O Organics. 
  5. You can use a full-fat or barista-style oat milk, or a creamy variety of soy milk or cashew milk.
  6. If using golden potatoes instead of Russets, do NOT use an immersion blender – the potatoes will get gummy. Use a potato masher or ricer instead. 
  7. If your lentils are not cooked through at 30 minutes, add in a bit more broth or water, cover, and simmer for another five minutes. 

Nutrition

Calories: 375.5kcal | Carbohydrates: 49g | Protein: 15g | Fat: 13.7g | Saturated Fat: 2g | Polyunsaturated Fat: 4g | Monounsaturated Fat: 5g | Trans Fat: 1g | Sodium: 1232mg | Potassium: 1040mg | Fiber: 15g | Sugar: 7g | Vitamin A: 842IU | Vitamin C: 41mg | Calcium: 79mg | Iron: 5mg

Nutrition information is automatically calculated, so should only be used as an approximation.

Love this? Leave a rating below!

Leave a Comment & Rating

If you enjoyed this recipe, please consider giving it a star rating along with your comment! It helps others discover my blog and recipes, and your comments always make my day :) Thank you for your support!

Your email address will not be published. Required fields are marked *

Rate this recipe




1,089 Comments

  1. Claudia says:

    5 stars
    This dish is amazing! It’s delicious and my go-to recipe whenever I host vegan friends. Thank you!

    1. Kaitlin @ Rainbow Plant Life says:

      Those words are music to our ears, Claudia! 🙂 Thank you so much for sharing!

  2. Jo says:

    5 stars
    This is one of my favourite comfort dishes! Quite labour intensive but totally worth it. It’s just me at home and I have made this twice now, put the batches fully cooked and cooled into the freezer and it’s just as good defrosted and reheated! Can you suggest any other healthy add ins to make it more of my five a day I wonder?

    1. Kaitlin @ Rainbow Plant Life says:

      Hi Jo, we’re so happy you love the shepherd’s pie! While this recipe has never included celery, carrots, or peas, we think they could be good additions.

      Just dice the carrots/celery, add them in after sautéing the onions, and cook until softened before moving on with the garlic and the rest of the recipe.

      While we love the rich onion base, you might go down to two onions since you might have too much filling if you add these extra veggies.

      For peas, you can stir them into the lentil filling at the end until warmed through. If you’d like to use fresh carrots, dicing a few and swapping them in for one of the onions works nicely too.

      Best of luck!

  3. Taya Wyss says:

    5 stars
    I had so much fun making this! Nisha (and team), I can’t thank you enough for sharing your culinary talents with the world! Your recipes are always wow-worthy, dependable, and full of SO MUCH FLAVOR! I had some Trader Joe’s pre-cooked lentils, so I used those instead of cooking the lentils as instructed, and it came out amazing still. I wasn’t sure what to make for non-vegans that happened to be gluten-free and dairy-free, and they all went back for seconds. I also made your Seriously Good Vegan Gravy to go with this, and it was a perfect complement as I already had so many of the ingredients. THANK YOU for saving me yet again!

    1. Kaitlin @ Rainbow Plant Life says:

      Your positive feedback is the best reward for our hard work, Taya! We are so happy everyone loved the shepherd’s pie and gravy. Very good. Thank you for the support!

  4. Leona Forest says:

    Can I make the day before and bake the day I want to serve it?

    1. Kaitlin @ Rainbow Plant Life says:

      Hi Leona, 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.

  5. Rasa Mulder says:

    not written how much lentils you need

    1. Kaitlin @ Rainbow Plant Life says:

      Hi Rasa, the recipe card calls for “1 1/2 cups (10 ounces / 285g) green lentils (or brown lentils).” Enjoy!

  6. Cissie says:

    5 stars
    Loved it. So much flavour. I did add 2 finely diced celery sticks and one finely diced carrot. This is a keeper.

    1. Kaitlin @ Rainbow Plant Life says:

      Awesome, Cissie. Thanks for your comment and for taking the time to review!

  7. Chris C says:

    3 stars
    Cooking the lentils separately seems to be the way to go here. I ended up with double the amount of vegetable broth still the lentils would not soften. Reading online it has something to do with adding them to a heavily acidic mixture which hardens the outer layer and prevents them from getting soft. Still, the flavors were amazing but I was very surprised that a RBL recipe was so off base technically.

    1. Kaitlin @ Rainbow Plant Life says:

      Hi Chris, we just retested this recipe to make sure we weren’t missing anything. Our lentils cooked within 30 minutes without any issues, so there’s likely a few potential issues:

      1) The lentils should be just tender (AKA al dente). You don’t need them to be super soft. A little bit of bite is fine, as they will continue cooking in the oven.

      2) The lentils should be cooked at a rapid simmer, which means steady, consistent bubbles across the pan. If you’re cooking them at a regular simmer or a gentle simmer, they likely won’t cook within 30 minutes. Conversely, if you vigorously boil this, the liquid will likely cook off faster than the lentils cook.

      3) If your lentils are older than a year or two, that is likely the reason they didn’t cook through in the time allotted. Older lentils, like dried beans, take longer to cook; some may never truly soften.

      4) Make sure you are using regular green lentils (or brown lentils), not French green lentils, which retain a bite and take longer to cook.

      We’ve also updated our FAQ and the recipe instructions with this information.We’ve updated our FAQ and the recipe instructions to help give you more guidance.

  8. Keith W says:

    5 stars
    Made this for St Patrick’s day and it was a huge hit – thank you!!! One note – I found the lentils were not done, so I ended up adding another 3/4 cup broth and simmering longer to finish them off – was wondering if I was the only one. As always with Nisha’s recipes, the end result was incredible!!!!

    1. Kaitlin @ Rainbow Plant Life says:

      We appreciate your feedback and support, Keith. Thank you for leaving a review!

  9. Mafi says:

    5 stars
    I love this recipe so much! I’ve been making it for years…10/10! Thank you so much 😁

    1. Kaitlin @ Rainbow Plant Life says:

      Hi Mafi, Thank you so much for such a fantastic review! Appreciate you taking the time!

  10. Adam says:

    You only give temperature in fahrenheit. Most cooks around the world use centigrade. It is usual to give both. Most ovens around the world display centigrade only.
    Your links at the top don’t take the user to a list of ingredients. It’s hidden a long way down.
    Thanks.

    1. Kaitlin @ Rainbow Plant Life says:

      Hi Adam, sorry if you missed the Celsius units in the recipe card!

      You can actually find both Fahrenheit and Celsius temperatures listed within the blog post and the recipe card itself. To get to the recipe card quickly, just click the ‘Jump to Recipe’ button at the very top of the post—it will take you straight to the ingredients and full instructions so you don’t have to scroll!

      1. Judy Oemcke says:

        5 stars
        I made this pie and found it delicious. Thank you

        1. Kaitlin @ Rainbow Plant Life says:

          Thanks for the lovely feedback, Judy!