Tender homemade meatballs simmered in rich onion gravy and served over creamy mashed potatoes.
Some of the best recipes in my mother's collection came from newspaper clippings that she tucked into her recipe box to try later. If they became family favorites, they stayed.
This hearty meatball recipe was one of those recipes. It was inexpensive to make, filling, and wonderful served over a big helping of creamy mashed potatoes. During the colder months, my mom even canned batches of these meatballs so she could quickly warm them for an easy winter supper. Although I haven't found her canning instructions yet, this is the everyday version she prepared whenever the family wanted a comforting homemade meal.
Tender beef meatballs simmered in a rich onion gravy are simple ingredients, but together they make one of those old-fashioned suppers that always brings everyone to the table.
Ingredients:
Meatballs:
1 1/2 pounds ground beef
1/2 C. evaporated milk, whole milk or half-and-half
1 C. old-fashioned oats or quick cooking oats
1 egg lightly beaten
1 onion, chopped fine
1 Tbs. prepared mustard
2 Tbs. chili powder
1 Tablespoon cumin *see note below
1 Tbs. paprika
1 1/2 tsp. salt
1 tsp. coriander
1 tsp. garlic powder
Gravy:
1 onion, chopped
1 Tbs. butter
2 1/2 c. water
2 1/2 tsp. Beef Bouillon powder
1 tsp. onion powder
½ teaspoon garlic powder
1 ½ teaspoons Worcestershire sauce
1/3 cup cold water
3 1/2 tablespoons corn starch
Mashed potatoes
Directions:
Preheat the oven to 375°F. Lightly grease or line a baking sheet with parchment paper.
In a large bowl, combine the ground beef, evaporated milk, oats, egg, onion, mustard, chili powder, cumin, paprika, salt, coriander, and garlic powder. Mix gently with your hands until just combined. Avoid overmixing to keep the meatballs tender.
Cover and refrigerate the mixture for 15 minutes. This helps the oats absorb moisture and makes the meatballs easier to shape.
Roll the mixture into 1 1/2-inch meatballs and arrange them on the prepared baking sheet. Refrigerate for another 10–15 minutes while the oven finishes heating. This extra chill helps the meatballs keep their shape during baking.
Bake for 18–22 minutes, carefully turning the meatballs halfway through, until they are browned and reach an internal temperature of 160°F.
While the meatballs bake, prepare the gravy.
In a large cast iron skillet or saucepan over medium heat, melt the butter.
Add the chopped onion and cook for 12–15 minutes, stirring occasionally, until soft and beautifully caramelized.
Pour in the water, beef bouillon, onion powder, garlic powder, and Worcestershire sauce. Bring the mixture to a gentle simmer.
In a small bowl or measuring cup, whisk together the cold water and cornstarch until completely smooth.
Slowly pour the slurry into the simmering broth while whisking constantly. Continue cooking for 2–3 minutes, or until the gravy reaches your desired thickness.
Add the baked meatballs to the skillet and gently spoon the gravy over the top. Simmer for 8–10 minutes, so the meatballs absorb some of the rich onion flavor.
Serve over a generous helping of creamy mashed potatoes and enjoy.
Recipe Note: Our family has always enjoyed the warm, earthy flavor of cumin, so this recipe uses an equal amount of cumin and chili powder. If you prefer a milder cumin flavor or are making this recipe for the first time, start with 1 teaspoon of cumin. You can always add more the next time to suit your family's taste.
Mom's Kitchen Tip: Mom often doubled recipes like this whenever hamburger was on sale. Even if she wasn't canning the meatballs, having an extra batch in the freezer meant supper was already halfway finished on a busy day.
Tips for Best Success:
- Don't overmix the meat. Gently combine the ingredients until everything is evenly distributed. Overmixing can make the meatballs dense instead of tender.
- Chill the mixture before shaping. Refrigerating the mixture for 15 minutes helps the oats absorb moisture and makes the meatballs easier to roll.
- Use a cookie or meatball scoop. This helps keep the meatballs the same size so they bake evenly.
- Bake instead of frying. Baking allows the meatballs to cook evenly with less mess and less grease.
- Caramelize the onions. Taking a few extra minutes to slowly cook the onions gives the gravy a rich homemade flavor.
- Whisk the cornstarch well. Make sure there are no lumps before adding it to the gravy.
- Simmer before serving. Let the meatballs simmer in the gravy for several minutes so they absorb even more flavor.
- Adjust the cumin to your family's taste. Our family loved cumin and used as much cumin as chili powder. If you prefer a milder flavor, reduce it to 1 teaspoon.
Variations and Substitutions:
- Substitute ground turkey or ground chicken for a lighter version.
- Use crushed saltine crackers or fresh breadcrumbs instead of oats.
- Add finely grated carrots or mushrooms for extra vegetables.
- Stir sliced mushrooms into the gravy.
- Add a splash of heavy cream or sour cream for a creamier gravy.
- Serve over buttered egg noodles, rice, or biscuits instead of mashed potatoes.
- Add a pinch of crushed red pepper flakes for extra heat.
- Freeze extra cooked meatballs for quick future meals.
Serving Suggestions:
This comforting meal pairs wonderfully with:
- Creamy mashed potatoes
- Buttered egg noodles
- Steamed green beans
- Buttered corn
- Honey-glazed carrots
- Fresh garden peas
- Homemade dinner rolls
- A crisp garden salad
- Applesauce or cranberry sauce for a touch of sweetness
How to Store:
- Refrigerator: Store leftover meatballs and gravy in an airtight container for up to 4 days.
- Freezer: Freeze cooked meatballs and gravy separately or together in freezer-safe containers for up to 3 months.
- To Reheat: Warm gently on the stovetop over low heat, adding a splash of water or beef broth if the gravy has thickened too much. You can also microwave individual portions until heated through.
Frequently Asked Questions:
Can I make the meatballs ahead of time?
Yes! Shape the meatballs up to one day ahead and refrigerate until ready to bake.
Can I freeze uncooked meatballs?
Absolutely. Freeze them on a baking sheet first, then transfer to freezer bags. Bake from frozen, adding several extra minutes.
Why do the oats go into the meatballs?
The oats help keep the meatballs tender and juicy while stretching the meat a little further—a wonderful old-fashioned kitchen trick.
Can I use quick oats?
Yes. Either quick oats or old-fashioned oats work well.
Why refrigerate the meatball mixture?
Chilling helps the meatballs hold together and makes them easier to shape.
Can I make the gravy ahead?
Yes. Prepare the gravy a day ahead and gently reheat before adding the baked meatballs.
What vegetables go well with this meal?
Green beans, peas, corn, carrots, broccoli, or a fresh salad all make excellent side dishes.






