00%

Contact

Elly - September 8, 2026

Meatballs and Gravy Recipe

Meatballs and Gravy Recipe

Servings: 6 Total Time: 90 hrs Difficulty: Easy
Tender beef meatballs simmered in rich onion gravy for an easy comfort-food dinner.
Meatballs and Gravy Recipe
pinit

I have a weakness for dinners that feel like they belong on a cold evening, even if I’m making them on an ordinary Tuesday. Meatballs and gravy is one of those meals for me. It’s simple, hearty, and the kind of food that makes me want to grab the biggest spoon I can find and pile everything onto a plate.

I usually serve these tender beef meatballs over creamy mashed potatoes because, honestly, I don’t see much reason to separate the two. The gravy runs into the potatoes, the onions add a little sweetness, and the meatballs soak up all that savory sauce while they finish cooking.

I also really like this recipe because I can get some of the work done earlier in the day. I’ve learned that having the meatballs already rolled and chilling in the refrigerator makes dinner feel much less hectic. I’ve even made extra and frozen them for another night when I know I’ll need an easy dinner.

The first time I made meatballs and gravy, I got a little too enthusiastic with the mixing. I wanted everything perfectly combined, so I kept working the meat until it looked almost like a paste. The meatballs cooked fine, but they were noticeably firmer than I wanted. That was my reminder that meatballs need a gentle hand.

A Few Things I Like About This Dinner

For me, this is one of those recipes where the ingredients are pretty ordinary, but the finished dish tastes like I put in a lot more effort than I actually did. Browning the meatballs gives them a nice outside texture, and all those browned bits left in the skillet become part of the gravy.

I like using 85% lean ground beef here because it gives me enough fat for tender, flavorful meatballs without leaving the dish feeling overly greasy. The finely diced onion, breadcrumbs, egg, garlic, ketchup, mustard, and Worcestershire sauce all work together without making the meatballs taste complicated.

The gravy is especially good because I use both chicken broth and beef broth. I know it sounds like one extra step when there’s already beef in the pan, but I like the balance it gives the sauce. Beef broth brings the deep savory flavor, while chicken broth keeps the gravy from becoming too heavy.

Then I add sliced yellow onion and let it soften slowly in butter. I don’t rush this part anymore. I used to turn the heat up because I wanted dinner done faster, and I ended up with onions that were browned in spots but still pretty firm. Giving them around 15 minutes makes a big difference.

Ingredients I Used for the Recipe

  • 3 tablespoons olive oil: I use this for browning the meatballs and giving the outside a nice golden color.
  • 1 1/2 pounds 85% lean ground beef: This is the base of the meatballs, and I like the little bit of extra fat for tenderness.
  • 1/2 yellow onion, finely diced: I mix this into the meatballs for moisture and flavor.
  • 1/4 cup plain or Italian breadcrumbs: These help hold the meatballs together without making them dense.
  • 2 cloves garlic, minced: I use garlic for a little extra savory flavor throughout the meatballs.
  • 1 large egg: The egg helps bind everything together.
  • 1 tablespoon ketchup: I like the subtle sweetness and extra flavor it brings to the beef.
  • 1 teaspoon yellow mustard: This adds a little tang without making the meatballs taste strongly of mustard.
  • 1 teaspoon Worcestershire sauce: I use this for a deeper savory flavor.
  • 1/2 teaspoon salt: This seasons the meat mixture.
  • 1/4 teaspoon pepper: I add this for a little bite.
  • 2 teaspoons fresh parsley, roughly chopped: I mix some into the meatballs and save a little more for finishing the dish.
  • 1 medium yellow onion, sliced into 1/2-inch strings: These cook down in the skillet and become part of the gravy.
  • 1 tablespoon unsalted butter: I use this to cook the onions after the meatballs are browned.
  • 1 cup chicken broth: This forms part of the gravy and keeps the sauce balanced.
  • 1 cup beef broth: I use this for that rich beefy flavor I want in the gravy.
  • 1 beef bouillon cube or 1 teaspoon beef base: This adds another layer of savory flavor.
  • 1 teaspoon onion powder: I add this directly to the gravy for more onion flavor.
  • 1/2 teaspoon garlic powder: This gives the gravy a gentle garlic flavor.
  • 1 1/2 teaspoons Worcestershire sauce: I add this to the gravy for a deeper, slightly tangy taste.
  • 2-3 drops browning and seasoning sauce, optional: I only use this when I want the gravy to have a darker color.
  • 1/4 cup cold water: I mix this with the cornstarch before adding it to the gravy.
  • 3 tablespoons cornstarch: This thickens the gravy into the consistency I want for spooning over mashed potatoes.

How to Make Meatballs and Gravy?

Step 1 – Mix the Meatballs Gently

I start by putting the ground beef, finely diced onion, breadcrumbs, garlic, egg, ketchup, mustard, Worcestershire sauce, salt, pepper, and parsley into a large bowl. I mix everything with my hands until it is just combined.

I really try not to overwork the mixture. If I keep squeezing and mixing it until it becomes completely uniform, the meatballs can turn out tough. A few uneven bits are completely fine.

Step 2 – Roll and Chill the Meatballs

I roll the mixture into meatballs about 1 1/2 inches across. I usually get around 24 to 27 meatballs from this amount, depending on how generous I am with each one.

Once they’re rolled, I put them in the refrigerator for about 15 minutes. I didn’t always bother with this little rest, but I’ve found that chilled meatballs are easier to handle and tend to hold their shape better when I brown them.

Step 3 – Brown the Meatballs

I heat the olive oil in a large nonstick skillet over medium heat. I brown about five or six meatballs at a time, leaving enough room between them that I can actually turn them without fighting with the pan.

I give each side roughly two minutes before turning. I’m not trying to cook them completely through at this point. I mainly want a browned outside and a little color left in the skillet for the gravy.

When each batch is browned, I move the meatballs to a plate and continue until they’re all seared. I resist the temptation to crowd the pan because that makes turning them harder and can keep them from browning nicely.

Step 4 – Soften the Onions

I lower the heat to medium and melt the butter in the same skillet. Then I add the sliced yellow onion and let it cook for around 15 minutes, stirring fairly often.

I like letting the onions soften and get a little caramelized around the edges. This is also where I start scraping up some of those browned bits from the meatballs because I don’t want that flavor sitting uselessly on the bottom of the pan.

Step 5 – Build the Gravy

I pour in the chicken broth and beef broth, then add the beef bouillon, onion powder, garlic powder, and Worcestershire sauce. I stir everything together and use a spatula to loosen the browned bits from the bottom of the skillet.

If I want a darker-looking gravy, I add just two or three drops of browning and seasoning sauce. I don’t use much because I’m mainly after color here, not a completely different flavor.

In a small container with a lid, I combine the cold water and cornstarch and shake it until it’s smooth. I bring the gravy to a boil, then slowly whisk in the cornstarch mixture. I keep whisking as it thickens so I don’t end up with little lumps floating around.

Once the gravy has thickened, I lower the heat to medium-low. I give it another minute or two because it continues to thicken as it simmers.

Step 6 – Finish the Meatballs in the Gravy

I put all the browned meatballs back into the skillet and spoon the gravy over the top. Then I let everything cook together for about 10 minutes.

This is when the meatballs finish cooking and the sauce gets a chance to work its way around them. I like to spoon the gravy over the meatballs once or twice while they simmer, especially if some of them are sitting higher than the others.

I check that the meatballs have reached 160°F in the center before serving. Then I scatter fresh parsley over everything and get ready to eat.

Step 7 – Serve It Over Mashed Potatoes

I always come back to creamy mashed potatoes with this meal. The potatoes give the gravy somewhere to go, and I like getting a little bit of everything in every bite.

Roasted carrots or green beans make an easy vegetable side for me when I want something fresh on the plate. I don’t usually make anything complicated because the meatballs and gravy are already doing most of the work.

Tips I Learned From Making These Meatballs

  • Don’t overmix the beef. I keep reminding myself that gently combined meat gives me softer meatballs. The more I work it, the firmer the finished texture becomes.
  • Chill the rolled meatballs. Fifteen minutes in the refrigerator is enough to help them stay together when I’m turning them in the skillet.
  • Brown in batches. I know it adds a few minutes, but I get much better browning when the meatballs have room around them.
  • Use a nonstick skillet if possible. I find it much easier to turn the meatballs without tearing the browned exterior away from them.
  • Don’t rush the onions. I’ve learned that softer, lightly caramelized onions make the gravy taste much better than onions that were hurried over high heat.
  • Keep the cornstarch mixture cold until you need it. I mix the cornstarch with cold water first, then add it gradually to the boiling gravy while whisking.
  • Don’t panic if the gravy looks thin at first. It thickens as it cooks, so I give it a little time before deciding whether it needs more thickener.
  • Check the meatballs before serving. I use 160°F as my stopping point so I know the centers are fully cooked.

Make-Ahead, Freezing, and the Little Things I Do Differently

One of my favorite parts of this recipe is that I don’t have to make every single thing right before dinner. I can mix and roll the meatballs up to a day ahead, put them in an airtight container, and keep them refrigerated until I’m ready to cook them.

I also like freezing raw meatballs. When I make a batch, I’ll sometimes double it on purpose. I freeze the extra meatballs, then move them into the refrigerator the night before I want to use them so they can thaw gradually.

That little habit has saved me more than once when I’ve had one of those days where cooking feels like the last thing I want to deal with. Having meatballs already prepared means I only need to brown them and make the gravy.

If I have leftovers, I let them cool and put them in an airtight container in the refrigerator. I use them within about three days. For longer storage, I freeze them for up to three months.

I’ve found that the leftovers are especially good over mashed potatoes the next day because the gravy settles into everything overnight. I reheat them gently so the meatballs don’t get dried out, adding a small splash of broth if the gravy has become too thick.

For me, Meatballs and Gravy is the kind of dinner that doesn’t need much fussing. I get tender beef, soft onions, rich brown gravy, and creamy potatoes all on one plate. It feels cozy without being complicated, and that’s exactly what I want from a comfort-food dinner.

I also like that I can make it feel like a Sunday dinner even when it’s not Sunday. Some recipes need a special occasion. This one just needs a skillet, a little time, and a hungry table.

Meatballs and Gravy Recipe

Difficulty: Easy Prep Time Cook Time Rest Time Total Time 90 hrs
Cooking Temp: 160  C Servings: 6 Estimated Cost: $ 15 Calories: 390 kcal
Best Season: Fall, Winter

Description

I make these tender beef meatballs with soft onions and a savory brown gravy that I love spooning over creamy mashed potatoes. I brown the meatballs first, then finish them gently in the gravy for a cozy skillet dinner.

ingredients

Meatballs

Gravy

Instructions

Make the Meatballs

  1. Mix the meatballs gently

    I add the ground beef, finely diced onion, breadcrumbs, garlic, egg, ketchup, mustard, Worcestershire sauce, salt, pepper, and parsley to a large bowl. I mix everything with my hands just until combined.
    I avoid overmixing because working the beef too much can make the meatballs firm and tough.
  2. Roll and chill

    I roll the mixture into meatballs about 1 1/2 inches across, making about 24 to 27 meatballs. I place them in the refrigerator for about 15 minutes.
    Chilling helps the meatballs hold their shape while I brown them.

Brown the Meatballs

  1. Brown in batches

    I heat the olive oil in a large nonstick skillet over medium heat. I brown about five or six meatballs at a time, giving each side roughly two minutes before turning. I transfer the browned meatballs to a plate and continue with the remaining batches.
    I leave space between the meatballs so they brown properly and are easier to turn.

Make the Gravy

  1. Soften the onions

    I lower the heat to medium and melt the butter in the same skillet. I add the sliced onion and cook it for about 15 minutes, stirring fairly often and scraping up the browned bits from the bottom.
    I let the onions soften and lightly caramelize instead of rushing them over high heat.
  2. Build the gravy

    I pour in the chicken broth and beef broth, then add the beef bouillon, onion powder, garlic powder, and Worcestershire sauce. I stir and scrape the skillet to loosen the browned bits. If I want a darker gravy, I add 2 to 3 drops of browning and seasoning sauce.
    The browning sauce is optional and is mainly used to deepen the gravy's color.
  3. Thicken the gravy

    I combine the cold water and cornstarch in a small container and shake until smooth. I bring the gravy to a boil, then slowly whisk in the cornstarch mixture. I keep whisking until the gravy thickens, then lower the heat to medium-low and simmer for another minute or two.
    I keep the cornstarch mixture cold until I am ready to use it to help prevent lumps.

Finish and Serve

  1. Finish the meatballs in the gravy

    I return all the browned meatballs to the skillet and spoon the gravy over them. I cook everything together for about 10 minutes, spooning gravy over the meatballs once or twice while they simmer.
    I check that the centers of the meatballs reach 160°F before serving.
  2. Serve

    I scatter fresh parsley over the meatballs and serve them over creamy mashed potatoes. I like adding roasted carrots or green beans when I want an easy vegetable side.
    Mashed potatoes are not included in the ingredient list or nutrition estimate for this recipe.

Nutrition Facts

Servings 6

Serving Size About 4 meatballs with gravy


Amount Per Serving
Calories 390 kcalkcal
% Daily Value *
Total Fat 25 gg39%
Saturated Fat 8 gg40%
Trans Fat 1 gg
Cholesterol 105 mgmg35%
Sodium 850 mgmg36%
Potassium 540 mgmg16%
Total Carbohydrate 16 gg6%
Dietary Fiber 1 gg4%
Sugars 4 gg
Protein 29 gg58%

Calcium 45 mg mg
Iron 4 mg mg

* Percent Daily Values are based on a 2,000 calorie diet. Your daily value may be higher or lower depending on your calorie needs.

Note

I can mix and roll the meatballs up to one day ahead and keep them refrigerated in an airtight container. I can also freeze raw meatballs and thaw them in the refrigerator overnight before cooking. Leftovers can be refrigerated in an airtight container for about three days or frozen for up to three months. I reheat them gently and add a small splash of broth if the gravy becomes too thick. Nutrition values are estimates per serving and do not include mashed potatoes or optional vegetable sides.

Keywords: meatballs and gravy, beef meatballs, homemade gravy, ground beef recipe, comfort food dinner, skillet meatballs, onion gravy, easy meatball recipe
File under

Frequently Asked Questions

Expand All:

Can I make the meatballs ahead of time?

Yes. I can mix and roll the meatballs up to one day ahead, then keep them covered in the refrigerator until I am ready to brown them.

Can I freeze these meatballs?

Yes. I like freezing extra raw meatballs, then transferring them to the refrigerator the night before cooking so they can thaw gradually.

Why do my meatballs turn out tough?

I avoid overmixing the beef because working the mixture too much can make the finished meatballs firmer. I mix only until the ingredients are combined.

Why should I brown the meatballs in batches?

I brown them in batches so they have enough room to develop a golden exterior and so I can turn them without crowding the skillet.

How do I know when the meatballs are done?

I check the center with a thermometer and make sure the meatballs reach 160°F before serving.

What should I serve with meatballs and gravy?

I usually serve these meatballs over creamy mashed potatoes. Roasted carrots or green beans are easy vegetable sides when I want something extra on the plate.

Previous
All posts
Next