Creamy Easy Meatballs and Gravy
This post may contain affiliate links. If you click and purchase, we may earn a small commission. Read our full disclosure.
Meatballs and gravy is the definition of comfort food. The combo of beef and pork makes these meatballs tender, juicy and full of savory flavor.
The gravy is incredibly easy to make. I used to think making a roux would be tricky and time consuming but this one is straightforward and foolproof. Make extra and use it for other meals like pork chops and gravy for later in the week.
For more meatball recipes, try Greek chicken meatballs, egg-free meatballs, or air fryer chicken meatballs.
Why you’ll love this recipe
- 36 grams of protein.
- Foolproof gravy that goes with everything.
- Tender, juicy meatballs.
Ingredients and Substitutions:
These are the main ingredients and substitutions for this homemade meatballs and gravy recipe. See the recipe card below for the full ingredient list and instructions.

- Lean Ground Beef: the mixture of ground beef and ground sausage makes these super flavorful and juicy.
- Lean Ground Pork
- Whole Egg
- Italian Seasoned Breadcrumbs: I prefer Italian breadcrumbs over panko breadcrumbs for meatball recipes because they hold better due to the size of the crumbs. You can use panko but they might not hold the meatballs together as well.
- Fresh Parmesan Cheese: freshly grated will give the best flavor.
- Fresh Garlic
- Yellow Onion
- Worcestershire Sauce: you can also use coconut aminos or soy sauce
- Italian Seasoning
- Unsalted Butter
- All-Purpose Flour: or gluten-free flour
- Beef Broth: or beef stock.
- Whole Milk: or low fat.
Variations
- You can use ground chicken to give these less calories but using pork and beef keeps the meatballs moist because of the higher fat content.
Dietary Modifications
- For gluten-free, use gluten-free breadcrumbs and gluten-free flour.
How to make this juicy meatballs and gravy recipe (a step-by-step visual guide):
Step 1: mix meatball ingredients
Preheat the oven to 400 degrees Fahrenheit. Line a baking sheet with parchment. In a large bowl, combine beef, pork, egg, bread crumbs, parmesan cheese, garlic, onion, Worcestershire, salt, pepper and Italian seasoning (image 1). Mix to combine with your hands until everything is evenly combined (image 2). Using a 1.5 Tbsp. cookie scoop, scoop the meatball mixture into 35 balls. Roll with your hands and place on a baking sheet lined with parchment paper (image 3). Place in the oven and bake for 15-20 minutes, until cooked through (image 4).Â

Step 2: make Creamy gravy and add meatballs
While the meatballs cook, make the gravy. In a large skillet, melt butter over medium heat. Whisk in the flour and cook 1–2 minutes to form a roux (image 5). Slowly whisk in broth, then milk (image 6), Worcestershire, salt, onion powder, and garlic powder. Simmer until thickened, I typically leave on low while the meatballs cook and whisk every so often for the perfect consistency (image 7). Season to taste with salt and pepper. When the meatballs are done, add the cooked meatballs to the skillet with the gravy. Simmer 2–3 minutes and coat (image 8).

Step 2: garnish and serve
Garnish with fresh parsley (image 9). Serve over mashed potatoes, rice, or egg noodles — or keep it lower-carb with mashed cauliflower, cauli rice or zucchini noodles.

Expert Tip!
If you don’t have a cookie scoop, the meatballs should be a little smaller than a golf ball.

Recipe FAQs
Store in an airtight container in the fridge for up to three days. I suggest storing the meatballs and gravy separately so both will last longer.
I like this with rice, mashed potatoes or egg noodles. If you want to keep it low carb, serve it with riced cauliflower or zucchini noodles.
Check out our other easy recipes!
If you make this recipe, please leave a rating and/or comment! Tag me on Instagram @ohsnapmacros, I love hearing from you!

Meatballs and Gravy
📱 MyFitnessPal & MacrosFirst App Users
You can find this recipe and many others on MyFitnessPal and MacrosFirst by searching: Ohsnapmacros – Meatballs and Gravy
Ingredients
For the Meatballs
- 1 lb. 93% lean ground beef
- 1 lb. lean ground pork
- 1 large egg
- 1.2 cup Italian seasoned breadcrumbs 66g
- 1/4 cup Parmesan cheese, grated
- 2 cloves garlic, minced
- 1 small yellow onion, grated or finely minced
- 1 Tbsp. Worcestershire sauce
- 1 tsp. salt
- 1/2 tsp. black pepper
- 1/2 tsp. Italian seasoning (or parsley and oregano)
For the Gravy
- 2 Tbsp. unsalted butter
- 2 Tbsp. all-purpose flour
- 2 cups beef broth
- 1/2 cup whole milk (or low-fat)
- 1 tsp. Worcestershire sauce
- 1/2 tsp. salt
- 1/2 tsp. onion powder
- 1/2 tsp. garlic power
- black pepper, to taste
- fresh parsley, for garnish
Instructions
- Preheat the oven to 400 degrees Fahrenheit. Line a baking sheet with parchment paper. In a large bowl, combine beef, pork, egg, breadcrumbs, parmesan cheese, garlic, onion, Worcestershire, salt, pepper and Italian seasoning. Mix to combine with your hands until everything is evenly combined.Â
- Using a 1.5 Tbsp. cookie scoop, scoop the meat mixture into 35 balls. Roll with your hands and place on a baking sheet. Place in the oven and bake for 15-20 minutes, until cooked through.Â
- While the meatballs cook, make the gravy. In a large skillet, melt butter over medium heat. Whisk in the flour and cook 1–2 minutes to form a roux.
- Slowly whisk in broth, then milk, Worcestershire, salt, onion powder, and garlic powder. Simmer until thickened, I typically leave on low while the meatballs cook and whisk every so often for the perfect consistency. Season to taste with salt and pepper.
- When the meatballs are done, add the baked meatballs to the skillet with the gravy. Simmer 2–3 minutes and coat in the gravy. Garnish with fresh parsley. Serve over mashed potatoes, rice, or egg noodles — or keep it lower-carb with mashed cauliflower, cauli rice or zucchini noodles.
Notes
- Makes a total of 35 meatballs, 5 per serving. You can of course have more or less! Nutritional information per meatball: 74 calories, 6g protein, 5g fat, 2g carbs, 108mg sodium.Â
- Nutritional information is an estimate and will vary with substitutions.Â



