This is the perfect Vegetarian Shepherd’s pie. It’s protein-packed and full of comfort.
Our vegetarian shepherd’s pie (actually, it’s even vegan too!) is not only hearty and delicious, but it’s also about half the calories of more traditional recipes. Is there anything better than healthy comfort food?

What Do You Use For The Filling In Vegetarian Shepherd’s Pie?
In place of beef or lamb, we opted for a blend of portobello mushrooms and lentils. Why? Mushrooms have a really meaty flavor, even though they are not meat. Mushrooms are not a vegetable either actually. They’re a fungus. But whatever… they have a really meaty flavor and are a perfect substitute here.
The problem is though that they don’t have protein. So the lentils are there to add some nice protein to the mix. For an extra umami punch, we used vegan Worcestershire sauce, which doesn’t include anchovies like its traditional counterpart and tastes amazing.
For the vegetables in the filling, we went with onion, carrots, and some frozen peas. Yum!
Making The Mashed Potato Topping
For the vegan shepherd’s pie topping, we went for a blend of cauliflower and buttery Yukon gold potatoes. Aside from boosting the health profile and being ever-so-trendy, the cauliflower lends a great flavor and creamy texture to the recipe.

Under the broiler, the topping browns up nicely and makes this dish a total showstopper, especially if you garnish it with a few sprigs of thyme to make it look super fancy.

Oh, and since the mushrooms, veggies, and lentils are all cooked in the same pan, that means fewer dishes for you at the end of this incredible meal. You are sooo welcome.
Print
Vegetarian Shepherd’s Pie Recipe
This is the perfect Vegetarian Shepherd’s pie. It’s protein-packed and full of comfort.
- Prep Time: 20 minutes
- Cook Time: 45 minutes
- Total Time: 1 hour 5 minutes
- Yield: 12 servings 1x
- Category: Entrée
- Method: Baked
- Cuisine: American
Ingredients
FOR THE TOPPING
- 1 and 1/2 lbs. Yukon gold potatoes, peeled and cut into 1-inch chunks
- 1 lb. cauliflower, cut into florets
- 2 tsp. kosher salt
- 1/4 cup vegetable broth
- salt and pepper, to taste
FOR THE FILLING
- 16 oz. baby portobello mushrooms, washed and dried
- 5 tsp. olive oil, divided
- 1 medium onion, diced
- 3 medium carrots, peeled and diced
- 2 cloves garlic, minced
- 2 and 1/2 cups vegetable broth
- 1/4 cup vegan red wine
- 2 Tbsp. tomato paste
- 2 tsp. vegan Worcestershire sauce
- 2 tsp. fresh thyme (or substitute 1 teaspoon dried thyme)
- 1 tsp. finely chopped fresh rosemary (or substitute 1/2 teaspoon dried rosemary)
- 1 cup uncooked green lentils, rinsed and drained
- 1 cup frozen peas
- Salt, to taste
Instructions
FOR THE TOPPING
- Add potato chunks and cauliflower florets to a large saucepan. Add enough water to cover them, add the salt, and bring to a boil over high heat. Reduce the heat to medium-low and simmer until the potatoes and cauliflower are soft and easily pierced with a fork, about 10 minutes.
- Drain off the water, add the potatoes and cauliflower back to the pan, and cook over low heat until most of the moisture has evaporated, about 1 minute.
- Transfer the potatoes and cauliflower to the bowl of a stand mixer fitted with the whisk attachment. Beat on low speed until completely mashed.
- Add vegetable broth and beat on medium speed until combined and smooth. Season with salt and pepper, to taste. Set aside.
FOR THE FILLING
- Preheat oven to 400°F. Quarter the mushrooms and add them to the bowl of a food processor. Pulse until the mushroom pieces are about the size of oats. (If you don’t have a food processor, you can finely chop the mushrooms.)
- Heat 3 teaspoons of oil in a large skillet over medium-high heat. Add the mushroom pieces and cook until thoroughly browned and most of the water has cooked off, 8-10 minutes. Transfer the mushrooms to a large bowl and set aside.
- Add the the remaining 2 teaspoons of oil to the skillet. Add the onions and carrots to the skillet, still at medium-high heat, and cook until the onions are translucent and the carrots are softened, about 5 minutes. Add the garlic and cook for another minute. Transfer the vegetables to the bowl with the mushrooms.
- Add the broth, wine, tomato paste, and Worcestershire sauce to the skillet, and use a wooden spoon to scrape up any browned vegetable bits from the bottom of the pan. Bring the liquid to a boil over high heat, then add the herbs and lentils.
- Reduce heat to medium-low and simmer for 10 minutes. Add the frozen peas and continue cooking until the lentils are al dente and most, but not all, of the liquid has been soaked up, about 10 more minutes.
- Remove from the heat, add the mushroom mixture to the lentils, and stir to combine. Try the filling and add salt and pepper, to taste.
- Pour the filling into a 13×9 baking pan and spread evenly over the bottom. Carefully spread the mashed potato mixture over the surface using the back of a spoon. You can use the back of the spoon or the tines of a fork to create a decorative pattern in the mashed potatoes, if you’d like.
- Bake for 20-25 minutes, until the mashed topping is lightly browned on top. Turn your broiler to high and brown the top under the broiler for about a minute. Serve warm.
Love this recipe? I’d appreciate it if you could scroll down and add a *5 star rating* to help others know they’ll love it as well!
This post originally appeared in March 2016 and was revised and republished in December 2022.

Delicious! I made my regular creamy mashed potatoes as the topping, but that lentil filling is amazing. Thanks!
★★★★★
You’re welcome, Rae! So glad you enjoyed.
Have you made this without mushrooms?
Hate them. Can I just leave them out or do you have a substitute.
Thanks
We haven’t tried it without mushrooms but it should work without them. You might want to add in an extra vegetable though, just for moisture and interest. A diced cooked sweet potato or some corn would be good choices.