Ingredients
Scale
For the Meatballs:
- Ground Meat:
- 1 lb (450g) 80/20 ground beef (the fat content is crucial for juicy meatballs)
- 1/2 lb (225g) ground pork (adds incredible flavor and tenderness)
- Binder & Moisture:
- 1 cup fresh breadcrumbs (Panko works well, or use 2–3 slices of white bread, crusts removed, torn into small pieces)
- 1/2 cup whole milk (or buttermilk for extra tang)
- 1 large egg, lightly beaten
- Aromatics & Flavor Enhancers:
- 1/2 cup finely grated yellow onion (grating releases more juice and integrates better than dicing)
- 2–3 cloves garlic, minced (about 1 tablespoon)
- 1/4 cup grated Parmesan cheese (freshly grated is best)
- 2 tablespoons fresh parsley, finely chopped
- 1 teaspoon dried oregano (or 1 tablespoon fresh, chopped)
- 1 teaspoon salt (adjust to taste, consider saltiness of Parmesan)
- 1/2 teaspoon black pepper, freshly ground
- Optional: A pinch of red pepper flakes for a subtle kick
- For Searing:
- 2 tablespoons olive oil or vegetable oil
For the Rich Brown Gravy:
- Fat & Roux Base:
- 2–3 tablespoons reserved pan drippings from meatballs (if not enough, add butter to make up the difference)
- 1/4 cup all-purpose flour
- Liquid Gold:
- 4 cups (32 oz / ~950ml) beef broth or stock (low sodium preferred, so you can control saltiness)
- Flavor Boosters:
- 1 tablespoon Worcestershire sauce
- 1 teaspoon soy sauce (adds umami depth; optional but recommended)
- 1/2 teaspoon onion powder
- 1/4 teaspoon garlic powder
- Salt and freshly ground black pepper to taste
- Optional Richness (after simmering):
- 1–2 tablespoons heavy cream or a dollop of sour cream (for a creamier finish)
- Fresh parsley, chopped, for garnish
Instructions
Part 1: Preparing the Meatballs
- Soak the Breadcrumbs: In a large mixing bowl, combine the fresh breadcrumbs (or torn bread) and the milk. Let this mixture sit for 5-10 minutes, allowing the breadcrumbs to fully absorb the liquid. This step is crucial for tender meatballs, as the hydrated breadcrumbs create little pockets of moisture.
- Combine Wet Ingredients: To the soaked breadcrumbs, add the lightly beaten egg, grated onion, minced garlic, grated Parmesan cheese, chopped fresh parsley, dried oregano, salt, black pepper, and optional red pepper flakes. Mix these ingredients gently but thoroughly until well combined. The aroma should already be starting to tempt you!
- Add the Ground Meats: Add the ground beef and ground pork to the bowl with the breadcrumb mixture. Using your hands (the best tool for this job!), gently combine the meats with the other ingredients. Be careful not to overmix. Overmixing develops the gluten in the meat and can result in tough, rubbery meatballs. Mix just until everything is incorporated.
- Form the Meatballs: Lightly wet your hands with cold water to prevent the meat mixture from sticking. Roll the mixture into uniform-sized meatballs, about 1.5 to 2 inches in diameter. A cookie scoop can be very helpful here for consistency. You should get approximately 16-20 meatballs, depending on the size. Place the formed meatballs on a clean baking sheet or large plate lined with parchment paper.
- Chill (Optional but Recommended): If you have time, cover the meatballs loosely with plastic wrap and chill them in the refrigerator for at least 30 minutes, or up to a few hours. Chilling helps the meatballs hold their shape better during cooking and allows the flavors to meld.
Part 2: Cooking the Meatballs
- Heat the Pan: In a large, heavy-bottomed skillet or Dutch oven (cast iron works wonderfully), heat the olive oil over medium-high heat. You want the oil hot enough to sear the meatballs nicely but not so hot that it burns.
- Sear the Meatballs: Carefully place the meatballs in the hot skillet, ensuring not to overcrowd the pan. You may need to do this in batches. Sear the meatballs on all sides until they are beautifully browned, about 1-2 minutes per side. The browning (Maillard reaction) develops a deep, savory flavor. Don’t worry about cooking them through at this stage; they will finish cooking in the gravy.
- Remove and Set Aside: Once browned, remove the meatballs from the skillet and set them aside on a clean plate. Tent them loosely with foil to keep them warm. Do not wipe out the skillet! Those browned bits (fond) left in the pan are flavor gold for your gravy.
Part 3: Making the Rich Brown Gravy
- Assess Pan Drippings: Look at the skillet. You should have some lovely browned bits and rendered fat. If there’s an excessive amount of fat (more than 3-4 tablespoons), carefully pour some off, leaving about 2-3 tablespoons in the pan. If there isn’t enough fat, add a tablespoon or two of butter to make up the difference.
- Create the Roux: Reduce the heat to medium. Sprinkle the all-purpose flour over the fat in the skillet. Whisk constantly for 1-2 minutes. The flour will absorb the fat and start to cook. You want it to turn a light golden brown and smell slightly nutty. This cooked flour-fat mixture is called a roux, and it’s what will thicken your gravy.
- Gradually Add Broth: Slowly begin to pour in the beef broth, about 1/2 cup at a time, whisking continuously and vigorously after each addition. This gradual addition and constant whisking are key to preventing lumps. Scrape up any browned bits from the bottom of the pan as you whisk; these are packed with flavor.
- Incorporate Flavor Boosters: Once all the broth has been added and the gravy is smooth, whisk in the Worcestershire sauce, soy sauce (if using), onion powder, and garlic powder.
- Simmer and Thicken: Bring the gravy to a gentle simmer, still whisking occasionally. Let it cook for 3-5 minutes, or until it has thickened to your desired consistency. It should be thick enough to coat the back of a spoon. Taste the gravy at this point and adjust seasoning with salt and pepper as needed. Remember that the meatballs will also add some saltiness.
Part 4: Bringing It All Together
- Return Meatballs to Gravy: Gently place the seared meatballs (and any accumulated juices from their plate) back into the simmering gravy. Ensure they are mostly submerged.
- Simmer Gently: Reduce the heat to low, cover the skillet, and let the meatballs simmer gently in the gravy for 15-20 minutes, or until they are cooked through and tender. The internal temperature of the meatballs should reach 165°F (74°C). Avoid boiling, as this can make the meatballs tough.
- Optional Creaminess: If you desire an even richer, creamier gravy, stir in the heavy cream or sour cream during the last 2-3 minutes of simmering. Stir until fully incorporated. Do not let it boil vigorously after adding cream.
- Rest and Serve: Turn off the heat. Let the meatballs and gravy rest for 5-10 minutes before serving. This allows the flavors to meld further and the meatballs to reabsorb some of their juices. Garnish with fresh chopped parsley just before serving for a touch of color and freshness.
Nutrition
- Serving Size: One Normal Portion
- Calories: 450-600