This post may contain affiliate links. Please read our disclosure policy.
This meatballs and gravy recipe is the kind of cozy, old-fashioned comfort food that always hits the spot. Tender, juicy meatballs are smothered in a rich, savory brown gravy and served over creamy mashed potatoes, buttered noodles, or rice for a hearty, satisfying dinner.
This is a true from-scratch version made with simple pantry staples, plenty of rich brown gravy, and deep, beefy flavor in every bite. It’s a classic smothered meatballs and gravy recipe that reheats beautifully, which makes it perfect for make-ahead meals and easy family dinners.
If you love cozy comfort meals like this, be sure to try my Salisbury steak next — it’s another classic smothered in rich gravy. And if you’re looking for something a little heartier with vegetables, check out my meatball stew for a one-pot version of this dish. For even more easy family dinners, browse my full collection of ground beef recipes.
Why This Recipe Works
- Classic comfort food: Tender, homemade meatballs smothered in a rich, savory brown gravy — the kind of old-fashioned dinner that’s perfect served over mashed potatoes, rice, or egg noodles.
- From-scratch brown gravy: Made with a simple roux, beef broth, onions, mushrooms, and Worcestershire for deep, beefy flavor — no packets or shortcuts needed.
- Thick, velvety texture: The gravy is rich enough to coat every bite without feeling too heavy or overly thick.
- Make-ahead friendly: The flavors deepen as it sits, and it reheats beautifully for easy meals throughout the week.
✨ Before You Begin
✨ Use 80/20 ground beef: It gives you juicy, tender meatballs with the best flavor.
✨ Make a panade: Soak the panko in milk for about 10 minutes to keep the meatballs soft and never dry.
✨ Brown for flavor: Let the meatballs develop a deep golden crust before turning — this builds flavor for the entire dish.
✨ Build the gravy properly: Cook the flour with the fat before adding liquid so your gravy is smooth, not pasty.
✨ Aim for the right consistency: The gravy should be thick enough to coat the meatballs and potatoes, but still spoonable.
Meatballs and Gravy Ingredients + Key Notes
This is just a quick look at the ingredients that make this recipe work. For exact measurements and the full ingredient list, head down to the recipe card below.
Milk + Panko: This simple panade keeps the meatballs tender and juicy.
Yellow onion: Grating the onion lets it melt right into the meat mixture without leaving chunky bits behind.
Dijon mustard + Worcestershire: These add savory depth and a little tang that makes the meatballs and gravy taste richer.
Italian seasoning + thyme: Give the dish that classic, cozy herb flavor.
Better Than Bouillon (beef): My favorite shortcut for giving the gravy a deeper, richer beef flavor.
How to Make Meatballs and Gravy
Make the meatballs. Soak the panko in the milk, then mix in the onion, garlic, egg, Dijon, Worcestershire, and seasonings. Add the ground beef and mix gently, just until combined.
Shape and brown. Roll the mixture into meatballs, chill briefly, then brown them in a skillet until golden on all sides. Transfer to a plate.
Build the gravy. In the same skillet, cook the onions and mushrooms in butter until softened, then stir in the garlic. Sprinkle in the flour and cook for 1–2 minutes, then gradually whisk in the beef broth, Worcestershire, and Better Than Bouillon.
Simmer and finish. Return the meatballs and any juices to the skillet, then simmer until the meatballs are cooked through and the gravy is thick and rich.
What Is Brown Gravy for Meatballs?
Brown gravy for meatballs is a rich, savory sauce made from butter, flour, and beef broth, often finished with Worcestershire for extra depth. It’s thick enough to coat the meatballs and whatever you serve them over, but still smooth and spoonable.
Unlike tomato-based sauces or cream gravies, brown gravy has a deep, beefy flavor that makes it perfect for classic comfort dishes like meatballs and gravy served over mashed potatoes or noodles.
⭐ Pro Tips for the Best Meatballs and Gravy
⭐ Chill before cooking: A short rest in the fridge helps the meatballs firm up so they hold their shape better in the skillet.
⭐ Don’t overcrowd the pan: Brown the meatballs in batches so they sear instead of steam.
⭐ Use the browned bits: When you add the broth, scrape up all those flavorful bits from the bottom of the pan — they add huge flavor to the gravy.
⭐ Adjust the gravy as needed: If it gets too thick, whisk in a splash of broth. If it’s too thin, let it simmer for a few extra minutes.
⭐ Flip gently: Meatballs are delicate at first, so use a spatula to turn them carefully. Tongs can squeeze and break them before they’ve had time to firm up.
⭐ Check for doneness: Meatballs are done when they reach 160°F in the center.
Mixing vs. Shaping
This is one of the most common points of confusion with meatballs: you want to mix gently so the meat stays tender, but you also need to shape firmly enough for the meatballs to hold together.
Mix gently: Stir just until everything is combined so the meatballs don’t turn dense or tough.
Shape firmly: Roll and lightly compact the mixture so the meatballs hold their shape while browning.
👉 Gentle mixing, confident shaping — that’s the secret to tender meatballs that won’t fall apart.
Storing + Reheating + Freezing + Make-Ahead Tips
Storing
Store leftovers in an airtight container in the refrigerator for up to 3 days.
Reheating
Warm leftovers gently on the stovetop over medium-low heat, stirring occasionally, until heated through. For larger portions, cover with foil and reheat in a 350°F oven for 15–20 minutes.
Freezing
Let the meatballs and gravy cool completely, then transfer to a freezer-safe container and freeze for up to 3 months. Thaw overnight in the refrigerator before reheating.
Make-Ahead
This is a great make-ahead recipe because the flavors deepen as it rests. You can make the whole dish a day ahead, refrigerate it, and reheat it when you’re ready to serve.
Frequently Asked Questions
◆ Can I bake the meatballs instead of frying?
Yes. Arrange them on a lined baking sheet and bake at 400°F for 18–20 minutes, or until browned and cooked through. Then add them to the gravy and let them simmer briefly so they pick up all that rich flavor.
◆ Can I make this without mushrooms?
Absolutely. You can simply leave them out, or add a little extra onion for more flavor. Diced carrots or celery can also add a bit more body to the gravy.
◆ What’s the best ground beef to use?
I think 80/20 ground beef gives you the best balance of flavor and tenderness. Leaner beef can work, but the meatballs may turn out a little drier.
◆ Can I double the recipe?
Yes. This recipe doubles well — just be sure to use a large enough skillet or Dutch oven so the meatballs can brown and simmer without crowding.
◆ Can I freeze the meatballs before cooking?
Yes. Shape the meatballs, place them on a tray, and freeze until firm. Then transfer them to a freezer bag or container. Thaw overnight in the refrigerator before browning and finishing the recipe.
More Cozy, Comfort-Food Dinners
Swiss Steak — tender beef in a savory sauce that’s perfect for a hearty, old-fashioned dinner.
Chicken and Dumplings — a classic comfort dish with tender chicken and soft dumplings in a rich, cozy broth.
Pork Stew — rich, hearty, and perfect when you want something warm and satisfying.
Cowboy Stew — bold, comforting, and loaded with flavor for a filling meal.
Mississippi Pot Roast — fall-apart tender beef in a rich, savory gravy that’s perfect over mashed potatoes.
Tried This Recipe?
If you made these Meatballs and Gravy, I’d love to hear how they turned out! Please leave a ⭐️⭐️⭐️⭐️⭐️ star rating and a review in the comments below — it helps more people find the recipe, and it absolutely makes my day. 💕
And if you haven’t already, be sure to subscribe to my newsletter — it’s totally free, and it’s the best way to get cozy new family favorites delivered right to your inbox.
Thanks for stopping by my kitchen today — happy cooking, friends! ❤️ Kathleen
Meatballs and Gravy
Ingredients
Meatballs:
- 1/2 cup milk
- 3/4 cup Panko
- 2 pounds ground beef, 80/20
- 1/2 cup yellow onion, grated on large holes of a box grater
- 4 cloves garlic, minced
- 1 large egg, lightly beaten
- 1 tablespoon Dijon mustard
- 1 tablespoon Worcestershire sauce
- 2 teaspoons Italian seasoning
- 1/2 teaspoon dried thyme leaves
- 1 teaspoon salt
- 1/2 teaspoon black pepper
- 3 tablespoons olive oil, divided
Gravy
- 1/4 cup unsalted butter
- 8 ounces mushrooms, sliced
- 1 medium yellow onion, thinly slice
- 1 tablespoon garlic, minced
- 1/4 cup all-purpose flour
- 3 1/2 cups, plus more as needed low sodium beef broth
- 2 teaspoona beef flavor Better than Bouillon
- 2 teaspoons Worcestershire sauce
- 1/4 teaspoon black pepper
Instructions
- Make the Panade: In a large mixing bowl, combine the milk (1/2 cup) and Panko (3/4 cup). Let it sit for 10 minutes, then mash with a fork into a paste.
- Mix the Meatballs: Add ground beef (2 pounds), onion (1/2 cup), garlic (4 cloves), egg (1), Dijon (1 tablespoon), Worcestershire (1 tablespoon), Italian seasoning (2 teaspoons), thyme (1/2 teaspoon), salt (1 teaspoon), and pepper (1/2 teaspoon). Mix gently with your hands until just combined. (Don’t overmix or they’ll get tough.)
- Shape: Roll into 1 1/2–2-inch meatballs, compressing enough that they hold together, and set on a tray. Refrigerate for 15 minutes to firm up.
- Brown the Meatballs: Heat 2 tablespoons of oil in a large skillet (a 3-quart enameled cast iron works great). Working in batches, add the meatballs, leaving space between each. Cook without moving for 3–5 minutes until browned on the bottom, then carefully flip and brown the other side. Transfer to a plate and tent loosely with foil. Continue until all are browned.
- Start the Gravy: In the same skillet, melt the butter (1/4 cup). Add the mushrooms (8 ounces) and onions (1) and cook over medium-low heat for 10–12 minutes, stirring occasionally, until the onions are softened and lightly golden and the mushrooms are browned. Adjust the heat to low as needed so the vegetables soften slowly without over-browning. Stir in the garlic (1 tablespoon) and cook for 1 minute more, just until fragrant.
- Build the Roux: Sprinkle flour (1/4 cup) over the onion mixture, stirring until it forms a paste. Cook for 1–2 minutes to remove the raw flour taste.
- Add Liquid: Gradually whisk in beef broth (3 1/2 cups), Worcestershire (2 teaspoons), and Better Than Bouillon (2 teaspoons). Bring to a gentle boil, stirring until the gravy thickens. Taste and adjust with salt and pepper (1/4 teaspoon) if needed.
- Finish Cooking: Nestle the browned meatballs back into the gravy with any accumulated juices. Reduce heat to low and simmer for 10–15 minutes, turning once halfway through, until the meatballs are fully cooked (160°F on an instant-read thermometer).
Fans Also Made:
Notes
- Chill before cooking: A short rest in the fridge helps the meatballs hold their shape.
- Don’t overcrowd the skillet: Brown in batches so the meatballs sear instead of steam.
- Deglaze the pan: Scrape up those browned bits when you add broth — they’re liquid gold for your gravy.
- Adjust gravy thickness: If it’s too thick, whisk in a splash more broth. Too thin? Simmer a few extra minutes.
- Turn with care: Meatballs are delicate when first browning. Use a spatula to gently flip them — tongs tend to squeeze and break them. Once they’re fully cooked, they become sturdier.
- Thermometer check: Meatballs are done when they reach 160°F internally.
- Kitchen Tip: Mixing vs. Shaping
Meatball prep can be confusing — experts say to mix gently, but you also need to apply pressure to form meatballs that hold their shape. Here’s the trick:
-
- Mix gently so the proteins don’t tighten up and turn the meatballs dense.
- Shape firmly by tossing and rolling the mixture until compact.
- Gentle mixing, confident shaping — that’s the secret to tender meatballs that won’t fall apart.
Nutrition
On your phone? Check the web story here.













Leave a Reply