There are few comfort meals more satisfying than a plate of juicy homemade meatballs served over buttery mashed potatoes and finished with a rich brown gravy. Add a blanket of melted mozzarella cheese, and you have a hearty family dinner that’s guaranteed to become a regular favourite.
This recipe combines tender beef and pork meatballs seasoned with fresh herbs, Parmesan cheese, and garlic. They’re gently simmered in a silky homemade gravy before being served on a bed of whipped roasted garlic mashed potatoes. The finishing touch of melted mozzarella creates a creamy layer that brings every bite together beautifully.
Whether you’re preparing a cosy Sunday dinner, feeding hungry guests, or simply craving classic comfort food, this recipe delivers restaurant-quality flavour with simple pantry ingredients.
Why You’ll Love This Recipe
- Moist, tender meatballs packed with herbs and Parmesan.
- Creamy garlic mashed potatoes that are incredibly fluffy.
- Rich homemade brown gravy made from scratch.
- Melted mozzarella adds an irresistible cheesy finish.
- Easy enough for weeknights yet elegant enough for entertaining.
- Great for meal prep and leftovers.
What Makes These Meatballs So Tender?
The secret lies in using a combination of lean ground beef and ground pork. While beef provides a rich, meaty flavour, pork contributes additional fat that keeps the meatballs juicy throughout cooking.
Breadcrumbs and egg work together as binders while Parmesan cheese adds savoury depth. Fresh parsley brightens the flavour without overpowering the rich meat.
Instead of baking, the meatballs are first browned in a skillet before finishing in the gravy, allowing them to absorb even more flavour while remaining wonderfully moist.
Ingredients
For the Herb Meatballs
- 1 pound lean ground beef
- ½ pound ground pork
- ½ cup Italian-style breadcrumbs
- 1 large egg
- ¼ cup freshly grated Parmesan cheese
- 2 garlic cloves, finely minced
- 2 tablespoons chopped fresh parsley
- 1 teaspoon onion powder
- 1 teaspoon Worcestershire sauce
- 1 teaspoon salt
- ½ teaspoon freshly ground black pepper
- 1 tablespoon olive oil
For the Garlic Mashed Potatoes
- 2 pounds Yukon Gold potatoes, peeled and cubed
- 4 tablespoons butter
- ½ cup heavy cream
- 2 roasted garlic cloves, mashed into a paste
- Salt, to taste
- Black pepper, to taste
For the Homemade Brown Gravy
- 2 tablespoons butter
- 2 tablespoons all-purpose flour
- 2 cups beef broth
- 1 tablespoon Worcestershire sauce
- 1 teaspoon Dijon mustard
- ½ teaspoon dried thyme
- Salt and black pepper to taste
For Serving
- 1 cup shredded mozzarella cheese
- Fresh parsley for garnish
Step-by-Step Instructions
Step 1 – Prepare the Potatoes
Fill a large saucepan with salted water and add the cubed Yukon Gold potatoes.
Bring to a gentle boil and cook for approximately 18 to 20 minutes, or until the potatoes are soft enough to pierce easily with a fork.
Drain thoroughly and set aside while preparing the remaining ingredients.
Step 2 – Mix the Meatballs
In a large mixing bowl combine:
- Ground beef
- Ground pork
- Breadcrumbs
- Parmesan
- Egg
- Garlic
- Parsley
- Onion powder
- Worcestershire sauce
- Salt
- Pepper
Mix gently using your hands until everything is evenly incorporated.
Avoid overmixing, as this can make the meatballs dense instead of tender.
Step 3 – Form the Meatballs
Divide the mixture into sixteen equal portions.
Roll each into a smooth ball, about the size of a golf ball.
Keeping them evenly sized ensures they cook uniformly.
Step 4 – Brown the Meatballs
Heat olive oil in a large skillet over medium heat.
Place the meatballs into the pan without overcrowding.
Cook for approximately 8 minutes, turning regularly until every side develops a deep golden-brown crust.
Transfer the browned meatballs to a plate.
Step 5 – Prepare the Brown Gravy
Using the same skillet, melt the butter over medium heat.
Whisk in the flour and cook for one minute until lightly golden.
Gradually pour in the beef broth while whisking continuously.
Stir in:
- Worcestershire sauce
- Dijon mustard
- Dried thyme
Allow the gravy to simmer until it becomes smooth, glossy, and thick enough to coat the back of a spoon.
Season with salt and pepper as needed.
Step 6 – Finish Cooking the Meatballs
Return the browned meatballs to the skillet.
Reduce the heat to low and allow them to simmer in the gravy for about 10 minutes.
During this time the meatballs finish cooking while absorbing the savoury flavours of the sauce.
Step 7 – Whip the Potatoes
Mash the cooked potatoes with:
- Butter
- Heavy cream
- Roasted garlic
Continue mashing until smooth and creamy.
Season generously with salt and black pepper.
For extra fluffy potatoes, use a potato ricer before mixing.
Step 8 – Assemble the Dish
Divide the mashed potatoes among four serving bowls.
Arrange four meatballs over each serving.
Ladle plenty of warm brown gravy over the meatballs.
Sprinkle generously with shredded mozzarella.
Allow the residual heat to melt the cheese until soft and stretchy.
Finish with freshly chopped parsley.
Serve immediately while everything is hot.
Expert Tips
- Roast garlic ahead of time for a sweeter, deeper garlic flavour.
- Avoid pressing down on the meatballs while browning.
- Simmer gently rather than boiling to keep the meatballs tender.
- Warm the cream before adding it to the potatoes for an extra silky texture.
- Freshly grate your Parmesan for the best flavour.
Delicious Variations
Add Mushrooms
Sauté sliced mushrooms before making the gravy for an earthy richness.
Extra Cheese
Mix shredded mozzarella directly into the mashed potatoes before serving.
Spicy Version
Add crushed red pepper flakes or cayenne to the meat mixture.
Herb Upgrade
Fresh rosemary and thyme make wonderful additions to the parsley.
Bacon Lover’s Version
Top each serving with crispy chopped bacon for extra flavour and crunch.
Serving Suggestions
This hearty meal pairs wonderfully with:
- Roasted green beans
- Garlic butter broccoli
- Honey-glazed carrots
- Steamed asparagus
- Fresh dinner rolls
- Caesar salad
- Buttered peas
Storage
Allow leftovers to cool completely before refrigerating.
Store in an airtight container for up to four days.
The meatballs, gravy, and mashed potatoes can also be frozen separately for up to three months.
Reheating
Reheat gently on the stovetop over medium-low heat.
Add a splash of beef broth or cream if the gravy becomes too thick.
Microwave individual portions in 30-second intervals until thoroughly heated.
Frequently Asked Questions
Can I use only beef?
Yes. Using all ground beef works well, although the meatballs may be slightly less tender than the beef-and-pork combination.
Can I prepare the meatballs ahead?
Absolutely. Shape the meatballs one day in advance and refrigerate until ready to cook.
Which potatoes make the best mashed potatoes?
Yukon Gold potatoes produce naturally creamy mashed potatoes with a buttery flavour.
Can I make this recipe gluten-free?
Yes. Simply replace the breadcrumbs with gluten-free breadcrumbs and use gluten-free flour for the gravy.
What cheese can replace mozzarella?
Provolone, Monterey Jack, fontina, or mild cheddar all melt beautifully over the meatballs.
Nutrition
Per Serving (Approximate)
- Calories: 690 kcal
- Protein: 40g
- Carbohydrates: 35g
- Fat: 42g
- Saturated Fat: 18g
- Fibre: 3g
- Sugar: 3g
- Sodium: 980mg
Recipe Information
Preparation Time: 20 minutes
Cooking Time: 35 minutes
Total Time: 55 minutes
Servings: 4
Final Thoughts
Tender herb meatballs served over creamy roasted garlic mashed potatoes are the ultimate comfort food. The homemade brown gravy ties every component together, while melted mozzarella adds a rich, cheesy finish that makes each bite unforgettable. This satisfying meal is perfect for family dinners, weekend gatherings, or whenever you’re craving classic homemade comfort. Once you try this recipe, it’s sure to earn a permanent place in your dinner rotation.
