Tender Meatballs and Rich Brown Gravy
This dish brings juicy meatballs and a savory brown gravy together in one pan, with nothing fussy or complicated. It’s the kind of weeknight meal that feels a little special but comes together without a long ingredient list.

The gravy gets its deep character from the browned bits left in the skillet after searing, and the meatballs stay tender thanks to a simple panade of panko and milk. Pile everything over mashed potatoes, and you have a dinner that satisfies without last-minute stress.
What Makes These Meatballs So Reliable
The panade, a quick soak of panko breadcrumbs in milk, is what keeps the meatballs soft even after simmering. No dry, dense meatballs here. That little step makes a big difference in texture.
I also love that the whole thing cooks in one skillet. You sear the meatballs first, then build the gravy right in the same pan, so all that flavor ends up in the sauce instead of the sink. It’s practical and yields a gravy that tastes like you fussed over it.
Ingredients

- 1 lb ground beef (80/20): use 80% lean for juicy meatballs that hold their shape.
- 1/2 cup panko breadcrumbs: gives a light, tender texture; regular breadcrumbs work too.
- 3 tbsp whole milk: helps bind the breadcrumbs into a paste.
- 1 large egg: adds structure.
- 2 garlic cloves, minced: fresh garlic gives a clean, sharp note.
- 1 tsp onion powder: savory flavor without chopping.
- 1 tsp kosher salt
- 1/2 tsp black pepper
- 2 tbsp unsalted butter: for the roux.
- 2 tbsp all-purpose flour: thickens the gravy.
- 2 cups low-sodium beef broth: using low-sodium lets you control the salt.
- 1 tbsp Worcestershire sauce: adds umami depth.
- 1 tsp Dijon mustard: a subtle tang that rounds out the gravy.
- 1 tbsp vegetable oil: for searing.
Variations / Substitutions
- Ground turkey: swap in the same weight for a lighter meatball, but watch that turkey can be leaner so the meatballs might be a bit less tender.
- Gluten-free: use GF panko and a gluten-free all-purpose flour blend.
- Fresh herbs: stir 2 tablespoons chopped parsley into the meatball mix for brightness.
- Spice: add 1/4 teaspoon red pepper flakes to the gravy for gentle heat.
- Dairy-free: use oat milk in place of whole milk and replace the butter with 2 tablespoons neutral oil for the roux.
If you want a creamier take, my Swedish Meatballs are a nice switch when you are in the mood for something richer.
How to Make Tender Meatballs and Rich Brown Gravy
Step 1: Mix the Meatball Mixture

In a large bowl, stir together the 1/2 cup panko and 3 tablespoons milk. Let that sit for 5 minutes so the breadcrumbs soften. Add the 1 pound ground beef, 1 egg, 2 minced garlic cloves, 1 teaspoon onion powder, 1 teaspoon salt, and 1/2 teaspoon pepper. Use your hands to gently mix everything just until combined, then shape the mixture into 1.5-inch balls. You should get about 16 to 18 meatballs.
The mixture will feel sticky but not wet. If it feels too loose to hold a round shape, pop the bowl in the fridge for 10 minutes before rolling, which also helps the flavors come together.
Step 2: Sear the Meatballs

Heat 1 tablespoon vegetable oil in a large skillet over medium-high heat until shimmering. Place the meatballs in a single layer and cook for 2 to 3 minutes per side, turning them with tongs, until they are nicely browned all over. This takes about 8 to 10 minutes total. If your skillet is on the smaller side, brown them in two batches so they sear instead of steaming. Transfer the browned meatballs to a plate.
You will see a dark layer of browned bits stuck to the bottom of the pan. That is the fond, and it is where the gravy gets much of its savoriness, so do not wipe it out.
Step 3: Whisk Together the Pan Gravy

Reduce the heat under the skillet to medium. Melt the 2 tablespoons butter, then scatter in the 2 tablespoons flour. Whisk constantly for 1 to 2 minutes, until the mixture smells nutty and turns a light golden brown. Slowly pour in the 2 cups beef broth while whisking, then add the 1 tablespoon Worcestershire sauce and 1 teaspoon Dijon mustard. Keep whisking and bring the liquid to a gentle simmer.
The gravy will start to thicken after a minute or two and should coat the back of a spoon. If it looks too thick, splash in a little more broth until it loosens to your liking.
Step 4: Simmer the Meatballs in the Gravy

Nestle the seared meatballs back into the skillet and spoon some of the gravy over the tops. Reduce the heat to low and let them simmer uncovered for 12 to 15 minutes, until the meatballs are cooked through and the gravy has reduced to a rich, velvety consistency.
The meatballs will soak up the savory flavor as they cook. If the gravy thickens more than you want toward the end, stir in a small pour of broth to bring it back.
Step 5: Serve Over Creamy Mashed Potatoes

Spoon the meatballs and plenty of gravy over a bed of hot mashed potatoes, buttered egg noodles, or rice. Scatter a little minced parsley on top if you have it, and serve right away while everything is steaming.
Tips for the Best Meatballs and Gravy
- Grate half a small onion into the meat mixture for extra moisture and a subtle sweetness that blends into the gravy later.
- Mix the meat just until the ingredients come together. Overworking it makes the meatballs dense and springy instead of tender.
- Let the shaped meatballs rest on a plate for 10 minutes before searing. This chill helps them hold their round shape in the hot skillet.
- If the gravy tastes flat, add a tiny splash of vinegar or an extra pinch of salt at the end to brighten the whole dish.
Simmer times by meatball size:
| Size | Simmer Time |
|---|---|
| 1 inch (small) | 8-10 mins |
| 1.5 inches (medium) | 12-15 mins |
| 2 inches (large) | 18-20 mins |
Storing Leftovers
- Refrigerate: Cool completely, then store in an airtight container for up to 4 days.
- Reheating: Warm gently on the stovetop over low heat with a splash of broth to keep the gravy loose and the meatballs tender. Microwave in short bursts if you are short on time, but stir between bursts.
- Freeze: Freeze the meatballs and gravy together in a freezer-safe container for up to 3 months. Thaw overnight in the fridge before reheating.
What to Serve With Meatballs and Gravy
These meatballs and gravy are classic spooned over creamy mashed potatoes, but they are just as good with wide egg noodles that catch lots of sauce. For something lighter, a bed of steamed rice works, and the neutral grain lets the gravy shine. Round out the plate with roasted green beans or simple steamed broccoli to cut the richness.
Frequently Asked Questions
Can I double this recipe?
Yes, double all the ingredients and use a larger skillet, or brown the meatballs in a few batches. Simmer time stays roughly the same, but you may need an extra minute or two to get the gravy to the right thickness.
Will a food processor make the meatballs quicker?
It is not a shortcut I recommend. A food processor can easily overwork the ground beef and turn the texture dense and rubbery. Mixing by hand with a light touch gives a much better result.
Can I use a cast iron skillet instead of nonstick?
Absolutely, cast iron holds heat well and gives the meatballs a great sear. Just use a wooden or silicone spoon when whisking the gravy so you do not scrape up the seasoning.

Tender Meatballs and Rich Brown Gravy Recipe
Ingredients
Method
- Combine panko and milk in a bowl; let sit 5 minutes. Add beef, egg, garlic, onion powder, salt, and pepper; gently mix. Shape into 1.5-inch meatballs.
- Heat oil in a skillet over medium-high heat. Sear meatballs on all sides, about 8-10 minutes. Transfer to a plate.
- Reduce heat to medium. Melt butter, then whisk in flour and cook 1-2 minutes until golden. Slowly whisk in broth, Worcestershire, and Dijon; bring to a simmer.
- Return meatballs to the skillet. Simmer uncovered over low heat 12-15 minutes, until meatballs are cooked through and gravy thickens.
- Spoon meatballs and gravy over mashed potatoes or noodles and serve hot.
