Vegetarian and dairy-free Shepherd’s Pie

by zoeibarker

I’ve been wanting to make a vegetarian/vegan Shepherd’s Pie basically this entire winter and never got around to it. It’s been slightly colder and rainy this week, so I finally bit the bullet in what is probably one of the last few weeks of cold-ish weather. Comfort food weather!

Shepherd’s Pie is usually ground beef or lamb with vegetables in a savory sauce thats is topped with mashed potatoes and baked. I set out to make this vegetarian and dairy-free based on our dietary restrictions and attempt number 1 went very well! I used a vegan ground beef substitute, what I lovingly refer to as “fake ground beef”, but if you’re not into the meat-substitute thing, lentils would be perfect in this. I also used vegetable stock, a non-dairy butter (plain olive oil will work fine), and almond milk to replace the meat and dairy that are in the classic recipes I found online.

I should also mention that most of my recipes, including this one, are for two people with leftovers. So adjust accordingly.


Five medium red potatoes

1/2 pack fake ground beef (or lentils)

Four or five large carrots

A medium shallot

A half bag (small bag) of frozen peas

1/2 tsp minced garlic

1/4 tsp thyme

2 tsp Worcestershire sauce, possibly a little more (or you can mix a little vegetarian BBQ sauce with a tiny bit of vinegar)

1/3 c vegetable stock

1 Tbsp tomato paste (use a little less and add more if needed)

2 Tbsp non-dairy butter/spread, plus at least another Tbsp for the potatoes

A splash of plain unsweetened almond milk

salt and pepper to taste


Scrub or peel your potatoes. In a medium or large pot, cover the potatoes with water, so there’s about a inch or so above them. Add some salt. Bring the pot to a boil and once it reaches a boil, turn the heat down to a simmer for like 15 minutes or as long as it takes for them to get soft when poked with a fork. I check them periodically.

While the potatoes are doing their thing, heat the non-dairy butter substitute (I like the kind made from olive oil) in a shallow pan and let it get all melty while you dice up your carrots. Toss the carrots in, and in the meantime, mince your shallot. After the carrots have had 5-7 minutes of alone time in the pan (with a little salt and pepper), throw in the shallot. At this point I put the frozen peas in, but I should have waited about 2-3 minutes longer.

About this time, pre-heat your oven to 425.

Make sure your carrots have started to get soft before you throw the peas in. (Note: some recipes include corn, but I don’t really like corn in things where it’s not the central ingredient, but if you like it, add it now) Next add the garlic, thyme, and tomato paste. When it’s combined, add the fake ground beef (or if you’re using lentils, maybe wait til the end if they’re pre-cooked), Worcestershire sauce (or BBQ and vinegar mixture), and vegetable stock. Season with salt and pepper, and add more Worcestershire sauce or tomato paste as you see fit. Let this simmer for 8-10 minutes. If it gets dry during simmering, add a splash more of the vegetable stock.

Your potatoes are probably done now and your oven should be almost if not fully preheated. Drain the potatoes, then return to the pot and smash with some more of the non-dairy butter and a splash of almond milk. Salt and pepper to taste. I also added a small splash of vegetable stock at the end because they tasted a little boring. Garlic would have been good too.

Now that your veggies and fake beef have gotten all cozy, and your mashed potatoes are ready, it’s oven time. Get out a glass or ceramic (oven safe!) dish. Pour the fake meat and veggie mixture into the bottom of the dish and spread it out evenly. Cover with the mashed potatoes, spreading evenly.

Pop in the over for 15-20 minutes, or until the top of the potatoes reaches your desired goldenness.


Note: I adapted this recipe from the following two classic recipes that came up when I googled shepherd’s pie: and