
This comforting meatballs and gravy recipe brings together juicy beef meatballs and a silky brown gravy with sweet onions served over fluffy mashed potatoes. It is the ultimate cozy dinner you can make ahead or freeze for hectic nights.
I remember the first time I made this for a Sunday dinner—it quickly became a top request for birthdays and cozy family nights. That first bite of hearty gravy poured over mashed potatoes is always a crowd pleaser.
Ingredients
- Ground beef Choose 85 percent lean for tender moist meatballs
- Yellow onion Adds sweetness and depth to both meatballs and gravy choose one that feels heavy for its size
- Breadcrumbs Bind the mixture and help keep the meatballs juicy look for fresh or homemade for best texture
- Egg Acts as a binder to hold the meatballs together use a large egg for richness
- Garlic Brings a mellow heat and savoriness mince fresh for bold flavor
- Ketchup and yellow mustard Give a slight tang and extra moisture pick your favorite brand
- Worcestershire sauce Delivers umami and complexity use genuine for authentic taste
- Salt and pepper Season throughout
- Fresh parsley Bright freshness and color seek out vibrant leaves
- Olive oil For browning gives flavor and prevents sticking opt for extra virgin
- Butter Adds rich base for gravy
- Beef and chicken broth The gravy’s backbone a mix brings more layered flavor choose low sodium if needed
- Beef bouillon Heightens the meaty profile use a trusted brand
- Onion powder Garlic powder Season the gravy fully
- Kitchen Bouquet Optional for color and richer flavor use sparingly
- Cornstarch with cold water Thickens the sauce stir until completely smooth
Step-by-Step Instructions
- Mix and roll the meatballs:
- Combine the ground beef onion breadcrumbs garlic egg ketchup mustard Worcestershire salt pepper and parsley gently in a large bowl only until just blended. Roll into balls about one and a half inches wide to keep them even and juicy. Chill the meatballs for fifteen minutes so they keep their shape during cooking.
- Brown the meatballs:
- Heat olive oil in a large nonstick skillet over medium heat. Gently lay in five or six meatballs at a time leaving space for easy turning. Brown each meatball for about two minutes per side until the outsides are golden. Set aside and repeat with all the meatballs.
- Caramelize the onions:
- Reduce the heat and melt the butter in the same pan. Add the sliced onions and stir them frequently for about fifteen minutes. You want them soft sweet and deeply golden as this becomes the flavor base for your gravy.
- Make the gravy:
- Pour in chicken broth beef broth and beef bouillon then add onion powder garlic powder and Worcestershire sauce. Use a silicone spatula to gently scrape up every brown bit stuck on the skillet for maximum flavor. Add a few drops of Kitchen Bouquet if a deeper color is desired.
- Thicken the gravy:
- Mix cornstarch and cold water in a closed container and shake until smooth. Once the broth mixture boils drizzle in the cornstarch slurry whisking constantly. Simmer gently on medium low until the gravy thickens smooth as velvet.
- Finish and serve:
- Return the browned meatballs and any resting juices to the skillet. Spoon some sauce over each one and let it cook together for about ten minutes so the flavors meld and the meatballs finish cooking through. A sprinkle of fresh parsley at the end brightens it up. Serve right over hot mashed potatoes or thick noodles.

The beef and caramelized onions create layers of depth in the gravy you will notice it is never one note. My favorite part is always the first drizzle of gravy over buttery mashed potatoes—it reminds me of Sunday suppers with everyone crowded around the table.
Storage tips
Keep leftovers covered tightly in the fridge and use within three days. Meatballs and gravy freeze well just cool completely before transferring to an airtight container. For best texture reheat gently in a skillet with a splash of broth or water stirring until everything is warm and smooth.
Ingredient substitutions
You can use a mix of beef and pork or even all turkey for lighter meatballs. Use gluten free breadcrumbs if needed. For dairy free just swap butter for more olive oil in the gravy. Homemade beef broth gives even more robust flavor if you have time.
Serving suggestions
This dish is classic over mashed potatoes but also works with buttered egg noodles or even rice. Pair it with steamed peas or roasted carrots for extra color and nutrition. Leftovers are delicious rolled into sub sandwiches topped with the extra gravy.

Cultural and historical context
American comfort food draws its roots from Swedish and Italian meatball traditions blending them with brown gravy for a nostalgic homey twist. For many families like mine this recipe called out for every holiday or snow day—a mainstay that has comforted generations.
Frequently Asked Questions
- → How do I keep meatballs from falling apart while cooking?
Chill the rolled meatballs in the refrigerator for 15 minutes before browning. This helps them hold their shape during cooking and makes it easier to handle them in the skillet.
- → How do I get a tender texture in the meatballs?
Mix the meat gently and avoid overworking it. Using a combination of egg, breadcrumbs, and a light touch helps ensure soft, juicy meatballs every time.
- → What is the best way to thicken the gravy?
Mix corn starch with cold water to make a slurry, then whisk it gradually into the simmering gravy until the desired consistency is reached. Whisk constantly to avoid lumps.
- → Can I prepare the meatballs and gravy ahead of time?
Yes, both components can be made in advance. Store them together or separately in the refrigerator, then gently reheat before serving. They also freeze well for later meals.
- → What are some options for serving besides mashed potatoes?
These meatballs and gravy pair well with buttered noodles, rice, or roasted vegetables for a satisfying and versatile meal.