clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon
Overhead view of a bowl of vegetarian shepherd's pie.

Vegetarian Shepherd’s Pie

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

5 from 2 reviews

  • Author: Emily
  • Total Time: 50 minutes
  • Yield: about 6 servings 1x
  • Diet: Gluten Free


Packed with veggies and a simple mashed potato (or cauliflower!) topping, this cozy vegetarian shepherd’s pie is comfort food at it’s finest! (Gluten Free, Dairy Free, Vegan & Paleo Friendly)



For the Vegetable Filling:

  • 2 Tbsp olive oil
  • 1 cup diced onion (about 1 small onion)
  • 1 stalk celery, diced
  • 4 large carrots, peeled and diced
  • 1 lb. (16oz.) sliced mushrooms
  • 1 clove garlic, minced
  • 2 Tbsp tomato paste
  • 2 Tbsp gluten free flour, all-purpose flour, or arrowroot*
  • 1/2 Tbsp fresh rosemary (or 1/2 tsp dried)
  • 1/4 tsp dried sage
  • 1/2 tsp salt
  • 1/2 tsp pepper
  • 1 1/2 cups vegetable broth (I prefer low-sodium)
  • Optional: 1 tsp vegan Worcestershire sauce, tamari, or coconut aminos*
  • 1 1/2 cups frozen peas*

For the Mashed Potato Topping:

  • 1 1/2 lbs. Russet potatoes, yellow/gold potatoes, or red potatoes, peeled and diced*
  • 1/23/4 cup unsweetened cashew milk (or your favorite dairy/non-dairy milk)
  • 1/4 cup ghee, butter, vegan butter, or light-tasting olive oil
  • salt and pepper, to taste


  1. Preheat the oven to 400 degrees F.
  2. Cook the potatoes. Put the diced potatoes in a large pot and cover with 1″ of water. Cover with a lid, and bring to a boil over medium-high heat. Remove lid and boil for 10-12 minutes, or until potatoes are very tender. (A piece of potato should easily mash with gentle pressure from a fork.)
  3. Drain and mash the potatoes. When the potatoes are cooked, drain them. Transfer to a large bowl. Immediately add 1/2 cup cashew milk, your ghee/butter/oil, and a generous amount of salt and pepper. Mash with a fork or quickly pulse with a hand mixer to break up the potatoes. (Note: potatoes can become gluey if beaten too much with a hand mixer. Work slowly and make sure your potatoes are very soft already & you shouldn’t run into trouble.)
  4. Season to taste. Add additional milk or butter/oil as desired. Taste and add additional salt and pepper as desired.
  5. While the potatoes are cooking, work on your vegetable filling. Heat olive oil over medium heat in a large (11-12″) pan or a Dutch oven. Add carrots, celery, and onion and cook 4-5 minutes to soften.
  6. Add mushrooms and continue to cook, stirring until mushrooms are tender, about 5-7 minutes.
  7. Add garlic, tomato paste, flour/arrowroot, rosemary, sage, salt, and pepper. Stir to coat the vegetable mixture.
  8. Pour in vegetable broth and cook over medium heat, letting it simmer until mixture has thickened. Turn off heat. Stir in frozen peas.
  9. Transfer vegetable mixture to a 2-quart baking dish. Spread evenly.
  10. Gently spoon the mashed potatoes on top of the vegetable mixture and smooth over the filling. Rough up the surface of the mashed potatoes with a fork (I make a zig-zag design). This will brown better in the oven.
  11. Place baking dish on a sheet pan (in case the filling bubbles over).
  12. Bake at 400 degrees 15 minutes, then turn the oven to broil and broil for 3-5 minutes, or until the top of the potatoes are golden. Remove from oven and serve.


*Paleo Notes: This recipe needs a few simple adjustments to be paleo or Whole30 approved. First, use the arrowroot option for the thickener in the vegetable mixture. Second, if you’re avoiding peas, you can substitute frozen cut green beans. Next, if you use the optional Worcestershire/coconut aminos, you’ll want to be sure you use coconut aminos or approved Worcestershire. Lastly, if you’re avoiding potatoes, you can swap in mashed cauliflower instead. Here’s an easy method to use for super creamy mashed cauliflower.

Make it Ahead. This can easily be prepped up until the oven step and refrigerated a day ahead or frozen. To freeze, cover with plastic wrap and foil. Be sure to remove plastic wrap and foil before cooking! If preparing from frozen, I recommend using a metal pan (less temperature shock) and adding an additional 5-10 minutes to your cook time before broiling.

Let’s Talk Pans – You can bake this in any 2-quart capacity dish. That can be an 8×8″ baking dish, a deep round baking dish, casserole dish, oval baker, etc. Whatever you’ve got! Or, you can divide the filling among ramekins for individual-sized shepherd’s pies. (This can be fun for a Sunday dinner or when you have company.) If you go the ramekin route, just keep an eye on them under the broiler, since they can have a tendency to cook faster.

A Note For My Cheese-Loving Friends –  In our dairy-eating days, I loved sprinkling the mashed potato layer with some shredded gruyere or sharp white cheddar cheese. (Anything is good–Parmesan, regular cheddar, etc.) It was an extra layer of delicious flavor and tastes delicious. Feel free to sprinkle on a bit of cheese before popping this in the oven!

Vegetarian or Vegan Friendly. This recipe is easily vegan or vegetarian. I use unsweetened cashew milk for my mashed potatoes, but any unsweetened milk (dairy or nondairy) will work. As for the butter/oil element in the mashed potatoes, you can use ghee, butter, vegan butter, or light-tasting olive oil depending on your dietary needs and preferences.

Change Up the Veggies – You can totally swap in or out any veggies that you like here. I use 1 pound of mushrooms, and then about 4-5 cups of veggies. The recipe can handle up to 6 cups of veggies, so feel free to add in some green beans, corn, bell peppers, parsnips, or leeks if you like.

  • Prep Time: 30 minutes
  • Cook Time: 40 minutes
  • Category: Main Dish
  • Method: Oven
  • Cuisine: American