Meatballs and Gravy
These homemade Meatballs and Gravy are everything comfort food should be! Tender, juicy meatballs are smothered in a rich, creamy beef gravy that’s so good you’ll be tempted to eat it by the spoonful. Best of all, it all comes together in one skillet with simple ingredients.
Love hearty, homemade dinners? Try our Cottage Pie, or Mini Meatloaf Recipe.

SAVE THIS RECIPE FOR LATER!
We love meatballs at our house, and I’ve shared everything from my Porcupine Meatballs and Meatball Casserole to Gluten Free Meatballs over the years. But this Meatballs and Gravy recipe is the one I make when we’re craving an old-fashioned dinner smothered in rich, creamy homemade gravy. It’s the kind of meal everyone looks forward to, and there’s never any gravy left behind.
What you’ll love about these Meatballs and Gravy
Meatballs and Gravy Recipe Ingredients
You’ll need the following ingredients to make these meatballs and gravy:
- Ground Beef: I prefer 85/15 because it stays juicy while still browning nicely.
- Old-Fashioned Oats: They replace breadcrumbs and make the meatballs surprisingly tender.
- Onion: Cooking it first gives the meatballs a sweeter flavor and softer texture.
- Beef Broth: Use a good-quality broth since it’s the base of the gravy.
- Heavy Cream: Adds richness and gives the gravy a silky finish.

Ingredient Notes:
- Ground Beef: Use lean beef to reduce grease and make the dish lighter.
- Bell Peppers: Red and green bell peppers add color and a mild sweetness to the hash.
- Potatoes: I love using russet potatoes in this recipe.
How to Make Meatballs and Gravy
STEP 1: Heat the oil in a large skillet over medium heat. Add the onion and cook until softened, about 4 to 5 minutes. Remove from the heat and let cool slightly.
STEP 2: In a small bowl, combine the old-fashioned oats and milk. Let the mixture stand for 2 to 3 minutes until the oats have softened.
STEP 3: In a large bowl, combine the ground beef, softened oat mixture, egg, cooked onion and garlic, Worcestershire sauce, salt, pepper, and thyme. Mix just until combined, then shape into 1½-inch meatballs.
STEP 4: Wipe out the skillet if needed and return it to medium heat. Add the meatballs in a single layer, working in batches if necessary. Cook, turning every few minutes, until browned on all sides, about 8 to 10 minutes. Transfer the meatballs to a plate.
STEP 5: Reduce the heat to medium-low and carefully pour off the excess grease, leaving about 2 tablespoons of the drippings in the skillet. Add the butter and let it melt. Whisk in the flour and cook for 1 minute, whisking constantly.
STEP 6: Slowly whisk in the beef broth until smooth. Stir in the heavy cream, Worcestershire sauce, salt, and pepper. Bring to a gentle simmer and cook, stirring often, until the gravy has thickened, about 3 to 5 minutes.
STEP 7: Return the meatballs and any accumulated juices to the skillet. Spoon the gravy over the meatballs, cover, and simmer until the meatballs are cooked through and reach an internal temperature of 160°F, about 10 to 15 minutes.
STEP 8: Serve the meatballs and gravy over mashed potatoes, egg noodles, or rice, and garnish with chopped fresh parsley if desired.

PRO TIP:
Don’t overmix the meatball mixture. Mix only until the ingredients are combined. Over mixing can make the meatballs dry and tough.

Storage and Reheating:
Storage: Store leftovers in the refrigerator in an airtight container for 3 -4 days.
Reheating: Warm in a skillet over medium-low heat until heated through. Add a splash of beef broth if the gravy has thickened too much. Individual servings can also be reheated in the microwave.
Freezing: Freeze the cooled meatballs and gravy together for up to 3 months. Thaw overnight in the refrigerator before reheating.

Additions and Substitutions:
ADDITIONS:
- Mushrooms- Add sliced mushrooms to the skillet before making the gravy for a delicious mushroom gravy.
- Onion Soup Mix- Stir a tablespoon of dry onion soup mix into the gravy for even more savory flavor.
SUBSTITUTIONS:
- Ground Beef- Ground turkey or ground chicken both work well if you prefer a lighter meal.
- Old-Fashioned Oats- Quick-cooking oats can be substituted in equal amounts. Avoid instant oatmeal, as it can become too soft and affect the texture of the meatballs.
- Heavy Cream- Half-and-half makes a slightly lighter gravy while still keeping it creamy.
- Beef Broth- Chicken broth works if needed, although the gravy will have a milder flavor.
FAQs About Meatballs and Gravy Recipe
Can I make the meatballs ahead of time?
Yes. You can shape the meatballs up to one day in advance and keep them covered in the refrigerator until you’re ready to cook.
Can I bake the meatballs instead?
Yes. Bake them at 400°F for about 18 to 20 minutes before adding them to the gravy to finish cooking.
Why are my meatballs tough?
The most common reason is overmixing the meat mixture. Mix just until everything is combined.
Can I make this recipe without heavy cream?
Yes. Whole milk or half-and-half can be substituted, although the gravy won’t be quite as rich.
What to Serve with Meatballs and Brown Gravy
We love serving these meatballs and gravy over creamy mashed potatoes with green beans on the side. And don’t forget the dinner rolls!

Meatballs and Gravy
Equipment
Ingredients
Meatballs:
- 2 pounds ground beef 85/15
- 3/4 cup old-fashioned oats
- 1/2 cup milk
- 1 large egg
- 1 tablespoon oil
- 1 large onion finely chopped
- 2 teaspoons Worcestershire sauce
- 1 1/2 teaspoons salt
- 1/2 teaspoon garlic powder
- 1/4 teaspoon black pepper
- 1/4 teaspoon dried thyme
Gravy:
- 4 tablespoons butter
- 4 tablespoons all-purpose flour
- 2 1/2 cups beef broth
- 1/2 cup heavy cream
- 1 tablespoon Worcestershire sauce
- 1 teaspoon salt
- 1/4 teaspoon black pepper
Instructions
- Heat the oil in a large skillet over medium heat. Add the onion and cook for 4 to 5 minutes, stirring occasionally, until softened. Remove from the heat and let cool slightly.1 tablespoon oil,1 large onion.
- In a small bowl, combine the oats and milk. Let stand for 2 to 3 minutes until the oats have softened.3/4 cup old-fashioned oats,1/2 cup milk.
- In a large bowl, combine the ground beef, softened oat mixture, egg, cooked onion, Worcestershire sauce, salt, pepper, and thyme. Mix just until combined. Shape into 1 1/2-inch meatballs. 2 pounds ground beef,1 large egg,2 teaspoons Worcestershire sauce,1 1/2 teaspoons salt,1/2 teaspoon garlic powder,1/4 teaspoon black pepper,1/4 teaspoon dried thyme.
- Wipe out the skillet if needed and return it to medium heat. Add the meatballs in a single layer, working in batches if necessary. Cook for 8 to 10 minutes, turning every few minutes, until browned on all sides. Transfer the meatballs to a plate.
- Reduce the heat to medium-low. Carefully pour off the excess grease, leaving about 2 tablespoons of the drippings in the skillet.
- Add the butter to the skillet. Once melted, whisk in the flour and cook for 1 minute, whisking constantly.4 tablespoons butter,4 tablespoons all-purpose flour.
- Slowly whisk in the beef broth until smooth. Stir in the heavy cream, Worcestershire sauce, salt, and black pepper. Bring to a gentle simmer and cook for 3 to 5 minutes, stirring often, until the gravy has thickened.2 1/2 cups beef broth,1/2 cup heavy cream,1 tablespoon Worcestershire sauce,1 teaspoon salt,1/4 teaspoon black pepper.
- Return the meatballs and any accumulated juices to the skillet. Spoon the gravy over the meatballs, cover, and simmer for 10 to 15 minutes, or until the meatballs are cooked through and reach 160°F. Serve over mashed potatoes, egg noodles, or rice.
Notes
Nutrition
This post contains links to affiliate websites, such as Amazon, and we receive an affiliate commission for any purchases made by you using these links. We appreciate your support!
About Vicky Hadley
Vicky Hadley is a professional food photographer and creator behind Little Chef Within. As a mom of 6 boys, there’s always plenty of noise and plenty of food! She relies on filling meals to keep her crew happy and loves creating recipes that real families can count on.


