Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 1/2 lb (1.13 kg) russet or Yukon Gold potatoes, peeled and cut into 1-inch chunks
- 6 tbsp unsalted butter, divided
- 1/2 cup whole milk
- 1/4 cup sour cream
- 2 tsp kosher salt, divided, plus more to taste
- 1/2 tsp black pepper, plus more to taste
- 1 tbsp olive oil
- 1 1/2 lb ground lamb (or ground beef)
- 1 large yellow onion, diced (about 2 cups)
- 2 medium carrots, diced (about 1 cup)
- 2 cloves garlic, minced
- 2 tbsp tomato paste
- 2 tbsp all-purpose flour
- 2 cups beef stock (or lamb stock)
- 1 tbsp Worcestershire sauce
- 1 tsp dried thyme
- 1/2 tsp dried rosemary
- 1 cup frozen peas
Do This
- 1. Boil potatoes in salted water until very tender (12–15 minutes); drain well.
- 2. Brown lamb (or beef) in olive oil; spoon off excess fat if needed.
- 3. Sauté onion and carrots; add garlic and tomato paste.
- 4. Stir in flour, then whisk in stock + Worcestershire; simmer until thick and glossy; stir in peas.
- 5. Mash potatoes with butter, milk, sour cream, salt, and pepper.
- 6. Spread filling in a 9×13-inch baking dish; top with mashed potatoes and rough up the surface with a fork.
- 7. Bake at 400°F (205°C) for 25 minutes; broil 2–4 minutes to brown; rest 10 minutes before serving.
Why You’ll Love This Recipe
- Comforting and hearty, with savory meat gravy under a fluffy, buttery potato topping.
- Simple, familiar ingredients and straightforward steps that work for weeknights or Sunday dinner.
- Bakes up with a browned, crunchy top thanks to a fork-textured potato surface.
- Great make-ahead meal; it reheats beautifully for leftovers.
Grocery List
- Produce: russet or Yukon Gold potatoes, yellow onion, carrots, garlic
- Dairy: unsalted butter, whole milk, sour cream
- Pantry: olive oil, ground lamb (or ground beef), tomato paste, all-purpose flour, beef stock (or lamb stock), Worcestershire sauce, dried thyme, dried rosemary, frozen peas, kosher salt, black pepper
Full Ingredients
For the mashed potato topping
- 2 1/2 lb (1.13 kg) russet or Yukon Gold potatoes, peeled and cut into 1-inch chunks
- 2 tsp kosher salt, divided (1 1/2 tsp for potatoes + 1/2 tsp for the filling), plus more to taste
- 6 tbsp unsalted butter, divided (4 tbsp for potatoes + 2 tbsp for the filling)
- 1/2 cup whole milk
- 1/4 cup sour cream
- 1/2 tsp black pepper, plus more to taste
For the savory lamb (or beef) filling
- 1 tbsp olive oil
- 1 1/2 lb ground lamb (or 90% lean ground beef)
- 1 large yellow onion, diced (about 2 cups)
- 2 medium carrots, diced (about 1 cup)
- 2 cloves garlic, minced
- 2 tbsp tomato paste
- 2 tbsp all-purpose flour
- 2 cups beef stock (or lamb stock)
- 1 tbsp Worcestershire sauce
- 1 tsp dried thyme
- 1/2 tsp dried rosemary
- 1 cup frozen peas
For baking and serving
- 1 tbsp unsalted butter (use from the 2 tbsp reserved for the filling) for greasing the dish
- Optional garnish: 1 tbsp chopped fresh parsley

Step-by-Step Instructions
Step 1: Heat the oven and start the potatoes
Arrange a rack in the middle of the oven and preheat to 400°F (205°C).
Place the potatoes in a large pot and add enough cold water to cover by 1 inch. Add 1 1/2 tsp kosher salt. Bring to a boil over high heat, then reduce to a steady simmer. Cook until the potatoes are very tender when pierced with a fork, 12–15 minutes.
Step 2: Brown the lamb (or beef)
While the potatoes cook, heat 1 tbsp olive oil in a large skillet over medium-high heat. Add the ground lamb (or beef) and cook, breaking it up with a spoon, until nicely browned and no longer pink, 7–9 minutes.
If there is a lot of rendered fat in the pan, carefully spoon off all but about 1 tbsp. (A little fat adds flavor, but too much can make the filling greasy.)
Step 3: Sauté the vegetables
Add the diced onion and carrots to the browned meat. Cook, stirring occasionally, until the onion softens and turns translucent and the carrots begin to tenderize, 6–8 minutes.
Add the minced garlic and cook until fragrant, 30 seconds.
Step 4: Build a thick, savory gravy
Stir in the 2 tbsp tomato paste and cook for 1 minute to deepen its flavor.
Sprinkle in the 2 tbsp flour and stir constantly for 1 minute so the flour coats the meat and vegetables (this helps thicken the gravy without lumps).
Slowly pour in the 2 cups stock, stirring as you go, then add 1 tbsp Worcestershire sauce, 1 tsp dried thyme, 1/2 tsp dried rosemary, and the remaining 1/2 tsp kosher salt. Bring to a simmer and cook until the gravy is thick, glossy, and coats the back of a spoon, 5–7 minutes.
Step 5: Finish the filling with peas
Stir in the 1 cup frozen peas and cook until heated through, 1–2 minutes. Taste and adjust seasoning with additional salt and pepper if needed.
Turn off the heat. If you have time, let the filling cool for 5 minutes before topping (this helps keep the potato layer distinct and easier to spread).
Step 6: Mash the potatoes until fluffy and buttery
When the potatoes are tender, drain them well and return them to the hot pot. Let them sit for 1 minute to steam off excess moisture.
Add 4 tbsp of the butter, 1/2 cup milk, 1/4 cup sour cream, and 1/2 tsp black pepper. Mash until smooth and fluffy. Taste and add salt and pepper if needed. (A potato ricer or food mill makes an extra-smooth topping, but a hand masher works perfectly.)
Step 7: Assemble for maximum browning and crunch
Use 1 tbsp butter to grease a 9×13-inch baking dish (or a similar 3-quart baking dish). Spread the meat filling evenly in the dish.
Dollop the mashed potatoes over the filling in several mounds, then gently spread to the edges, sealing the topping all the way around (this helps keep the gravy from bubbling up over the top).
Drag a fork across the surface to create ridges. Those ridges brown beautifully and turn crisp in the oven.
Step 8: Bake, broil, and rest before serving
Bake at 400°F (205°C) until the filling is bubbling at the edges and the potato topping is starting to brown, 25 minutes.
For a deeper browned, crunchier top, switch the oven to broil on high and broil 2–4 minutes, watching closely to prevent scorching.
Remove from the oven and let rest for 10 minutes before scooping. This short rest helps the gravy thicken slightly so servings hold together better. Garnish with chopped parsley if you like.
Pro Tips
- Ridges equal crunch: Use a fork to rough up the potato surface; those peaks brown faster than a smooth layer.
- Control the grease: Lamb can render more fat than beef. Spoon off excess so the filling tastes rich, not oily.
- Thicken with confidence: Cook the flour for a full minute before adding stock, and simmer the gravy until it coats a spoon.
- Seal the edges: Spread potatoes all the way to the sides of the dish to reduce bubbling overflow.
- Rest for clean slices: A 10-minute rest helps the layers set, making serving neater.
Variations
- Extra-veg version: Add 1 cup diced mushrooms with the onions, or stir in 1 cup frozen corn with the peas.
- Cheddar-topped: Mix 1 cup (4 oz) shredded sharp cheddar into the mashed potatoes or sprinkle it on top for the last 10 minutes of baking.
- Guinness-style gravy: Replace 1/2 cup of the stock with 1/2 cup stout beer and simmer until thick.
Storage & Make-Ahead
Refrigerate: Cool completely, cover tightly, and refrigerate for up to 4 days.
Reheat: Reheat individual portions in the microwave until hot, 2–4 minutes, or rewarm the full dish (covered with foil) in a 350°F (175°C) oven until heated through, 25–35 minutes. Uncover for the last 10 minutes to re-crisp the top.
Make-ahead: Assemble the pie up to 24 hours ahead, cover, and refrigerate. Bake straight from the fridge at 400°F (205°C) for 35–40 minutes, then broil 2–4 minutes to brown.
Freeze: Wrap tightly and freeze for up to 2 months. Thaw overnight in the refrigerator, then bake at 400°F (205°C) for 35–45 minutes until bubbling and hot in the center.
Nutrition (per serving)
Approximate (based on 6 servings, using ground lamb): 560 calories, 28 g protein, 45 g carbs, 29 g fat, 6 g fiber, 6 g sugar, 780 mg sodium.
