Shepherd’s Pie Recipe
Most Shepherd’s Pie recipes are just a basic mix of ground beef and vegetables. This version is built on a much richer gravy, seasoned with fresh rosemary and allspice, and has a potato topping that’s fortified with Pecorino cheese and egg yolks so it bakes up golden brown and firm, not watery.


Ingredients
For the Filling
- 2.5 lbs ground beef (80/20 is ideal)
- 1 large yellow onion, finely chopped
- 2 medium carrots, grated
- 5-6 cloves garlic, grated or minced
- 2 1/2 tbsp tomato paste
- 1/4 cup All-Purpose Flour
- 2 tbsp soy sauce
- 1 1/2 tbsp ketchup
- 2 tbsp white vinegar
- 3 cups beef broth
- 3 sprigs fresh rosemary
- 1/2 tsp dried thyme
- 1/2 tsp allspice
- 1 1/4 cups frozen peas
- Kosher salt and black pepper, to taste
For the Potato Topping
- 3.5 lbs yellow potatoes
- 10 tbsp unsalted butter, melted
- 2/3 cup heavy cream, warm
- 1 cup Pecorino Romano cheese, grated, plus more for topping
- 2 tsp dried parsley
- 1/2 tsp garlic powder
- 3 large egg yolks
Make the Beef Filling
Add the ground beef to a large, cold pan or dutch oven, then place it over medium-high heat. Season with salt and pepper and let the beef brown for a few minutes without stirring.
Once a crust forms, break the meat apart and cook until it’s no longer pink.
Add the chopped onion and grated carrot to the pan. Cook for another 3-4 minutes, until the vegetables soften. Add the garlic and cook for another minute until fragrant.
Stir in the tomato paste and cook it for about a minute to deepen the flavor. Sprinkle the flour over the beef and stir constantly for another two minutes to cook off the raw flour taste.
Pour in the soy sauce, ketchup, and vinegar, scraping up any browned bits from the bottom of the pan. Then, pour in the beef broth.
Add the rosemary sprigs, thyme, and allspice. Bring the mixture to a boil, then reduce the heat to a simmer and let it cook for about 10 minutes, uncovered, until the gravy has thickened.
Remove the rosemary sprigs. Taste the filling and adjust the salt and pepper as needed.
Stir in the frozen peas and cook for another 5 minutes.
Prepare the Mashed Potatoes
While the filling simmers, peel the potatoes and cut them into uniform quarters.
Place the potatoes in a large pot and cover them with cold, salted water. Bring the pot to a boil and cook for ~15-20 minutes, or until the potatoes are easily pierced with a fork.
Drain the potatoes well in a colander. Return the empty pot to the stove over medium heat and add the drained potatoes back in. Let them cook for a minute or two to steam off any remaining moisture.
This step is key for preventing watery mashed potatoes.
Remove the pot from the heat and mash the potatoes until no large lumps remain.
Add the melted butter, warm cream, Pecorino Romano, dried parsley, and garlic powder. Stir everything together until just combined.
Add the egg yolks and mix quickly until they are fully incorporated.
Assemble and Bake the Pie
Preheat your oven to 400°F.
Pour the beef filling into an oven-safe baking dish (an 11×8 inch dish works well) and spread it into an even layer.
Spoon the mashed potatoes over the top of the filling. Use a spatula to gently spread the potatoes to cover the entire surface.
For a crispier top, you can drag the tines of a fork across the surface of the potatoes to create ridges.
Sprinkle a little extra Pecorino Romano over the top.
Bake for 20-25 minutes, until the filling is bubbling and the potato topping is golden brown.
If you want the top more browned, switch the oven to broil for the last 2-3 minutes.
Keep a close eye on it, as the broiler can burn the topping quickly.
Let the Shepherd’s Pie rest for at least 5-10 minutes before serving.

Shepherd’s Pie
Ingredients
For the Filling
- 2.5 lbs ground beef 80/20 is ideal
- 1 large yellow onion finely chopped
- 2 medium carrots grated
- 5-6 cloves garlic grated or minced
- 2 1/2 tbsp tomato paste
- 1/4 cup All-Purpose Flour
- 2 tbsp soy sauce
- 1 1/2 tbsp ketchup
- 2 tbsp white vinegar
- 3 cups beef broth
- 3 sprigs fresh rosemary
- 1/2 tsp dried thyme
- 1/2 tsp allspice
- 1 1/4 cups frozen peas
- Kosher salt and black pepper to taste
For the Potato Topping
- 3.5 lbs yellow potatoes
- 10 tbsp unsalted butter melted
- 2/3 cup heavy cream warm
- 1 cup Pecorino Romano cheese grated, plus more for topping
- 2 tsp dried parsley
- 1/2 tsp garlic powder
- 3 large egg yolks
Method
- Brown ground beef in large pan over medium-high heat until no longer pink.
- Add onion and carrot, cook 3-4 min. Add garlic, cook 1 min.
- Stir in tomato paste, cook 1 min. Add flour, cook 2 min.
- Add soy sauce, ketchup, vinegar, beef broth, rosemary, thyme, and allspice.
- Bring to boil, reduce to simmer 10 min until thickened. Remove rosemary.
- Stir in peas, cook 5 min. Season with salt and pepper.
- Boil quartered potatoes in salted water 15-20 min until tender.
- Drain potatoes, return to pot over medium heat 1-2 min to dry.
- Mash potatoes, mix in butter, cream, cheese, parsley, garlic powder, and egg yolks.
- Heat oven to 400°F.
- Spread beef filling in 11×8 baking dish, top with mashed potatoes.
- Create ridges with fork, sprinkle with extra cheese.
- Bake 20-25 min until bubbling and golden.
- Optional: broil 2-3 min for more browning.
- Rest 5-10 min before serving.








