Veal & Pork Meatballs with Pan Gravy
The meatballs get their tenderness from crumbs soaked until almost porridge-like. Brown them well, because the skillet bits turn into the cream gravy that makes this supper.

Recipe link
Prep time25 min
Cook time35 min
Total time1 hr
- Course
- Main Course
- Cuisine
- Granny's Recipes, American
- Difficulty
- Medium
- Est. calories / serving
- 500
Ingredients
Meatballs
- ½ pound ground beef
- ¼ pound ground veal
- ¼ pound ground pork
- ½ cup plain dry bread crumbs
- ½ cup whole milk
- 1 large egg
- 3 tablespoons yellow onion — small dice
- 3 tablespoons butter — divided
- 1 ½ teaspoons salt
- ¼ teaspoon black pepper
Pan Gravy
- 2 tablespoons pan drippings from meatballs — from meatballs
- 2 tablespoons all-purpose flour
- 1 ½ cups whole milk
- As needed salt (optional) — to taste
- As needed black pepper (optional) — to taste
Instructions
- Cook the Onions: In a large skillet melt 1 tablespoon butter over medium heat. Add the onion and cook, stirring often, until soft and lightly golden, about 5 minutes. Transfer the onion to a plate and let it cool for 5 minutes.1 tbsp butter, 3 tbsp yellow onion
- Prepare the Meatball Mixture: In a large mixing bowl combine the bread crumbs and milk. Stir and let stand for 5 minutes, until the milk is absorbed and the mixture looks like thick porridge. Add the egg, cooked onion, salt, and black pepper and stir until evenly combined. Add the ground beef, ground veal, and ground pork. Mix gently with clean hands just until no large streaks of meat remain.½ cup bread crumbs, ½ cup whole milk, 1 egg, 8 oz ground beef, 4 oz ground veal, 4 oz ground pork, cooked onions, 1½ tsp salt, ¼ tsp black pepper
- Shape the Meatballs: Using damp hands, divide the mixture into 20 equal portions and roll them into meatballs about 1½ inches wide, about 10 minutes. Place the shaped meatballs on a tray without packing the mixture tightly. They should hold their shape but still feel tender.
- Brown the Meatballs: Return the skillet to medium heat and melt 1 tablespoon of the remaining butter. Add half of the meatballs, leaving space between them, and brown for 6–8 minutes, turning every 1–2 minutes until deeply browned on several sides. They do not need to be cooked through yet. Transfer them to a clean plate. Melt the final tablespoon butter in the skillet and repeat with the remaining meatballs.2 tbsp butter, meatballs
- Make the Gravy: Reduce the heat to medium-low. Leave 2 tablespoons of the butter and meat drippings in the skillet and spoon off any excess. Whisk in the flour and cook for 1 minute, until smooth and lightly foamy. Slowly pour in the milk while whisking constantly and scraping the browned bits from the skillet. Bring to a gentle simmer and cook for 3–5 minutes, whisking often, until the gravy is smooth and coats the back of a spoon. Season with salt and black pepper.2 tbsp pan drippings, 2 tbsp all-purpose flour, 1½ cups whole milk, salt, black pepper
- Finish the Dish: Return the meatballs and any accumulated juices to the skillet. Reduce the heat to low and simmer gently for 5–8 minutes, turning the meatballs once or twice, until their centers reach 160°F. Do not let the gravy boil vigorously. Serve warm.meatballs, gravy
Notes
- Breadcrumbs: Let the bread crumbs absorb the milk completely before adding the meat. The finished panade should look like thick porridge rather than loose liquid.
- Mixing: Stop mixing as soon as the ingredients are evenly combined. Packing or kneading the mixture creates dense meatballs.
- Browning: Work in two batches and leave room around every meatball. Deep browning adds flavor to both the meatballs and the pan gravy.
- Gravy: Keep the heat moderate once the milk is added and whisk along the bottom and edges of the skillet. For a richer gravy, replace up to ¾ cup of the whole milk with light cream.
- Chilling: If the shaped meatballs feel too soft to hold a round shape, refrigerate them for 10–15 minutes before browning.
- Make Ahead: Shape the meatballs, cover the tray, and refrigerate for up to 24 hours before browning.
- Storage and Reheating: Refrigerate leftovers in a shallow airtight container within 2 hours and use within 3–4 days. Reheat gently over low heat, turning the meatballs and stirring the gravy, until the centers reach 165°F. Add a small splash of milk if the gravy has become too thick.
- Optional For Serving
- mashed potatoes
- buttered egg noodles
- lingonberry jam
- roasted carrots
- Lemon Green Beans
Nutrition (Approximate Per Serving)
Yield
About 20 meatballs — Serving size: About 5 meatballs with gravy
Some ingredients could not be modeled and may meaningfully change the totals. Treat these values as a rough estimate.
- Calories
- 500
- Carbohydrates
- 20 g
- Protein
- 22.5 g
- Fat
- 36.5 g
- Saturated Fat
- 16.5 g
- Cholesterol
- 150 mg
- Sodium
- 1100 mg
- Fiber
- 0.9 g
- Total Sugars
- 7.5 g
Equipment
- Large skillet (12-inch recommended)
- Large mixing bowl
- Measuring cups and spoons
- Wooden spoon
- Whisk
- Tongs
- Instant-read thermometer
- Tray
- Clean plate