Prep Time: 20 minutes
Cook Time: 25 minutes
Total Time: 45 minutes
Intensity Level: Medium (requires mixing, shaping, and pan work – but very doable for a confident home cook)
Servings: 4
Difficulty: 2/5
There’s something magical about a plate of tender, juicy meatballs swimming in a savory, silky gravy. This recipe delivers old-fashioned comfort without using canned soups or shortcuts. The meatballs are seared to golden perfection, then simmered in a from-scratch gravy that’s begging to be soaked up by mashed potatoes, egg noodles, or crusty bread.
Why You’ll Love This Recipe
-
One pan from start to finish (deep flavor, less cleanup)
-
Freezer-friendly – make a double batch for busy nights
-
Gravy is naturally thickened – no cornstarch slurry needed
-
Customizable – swap proteins or make it dairy-free
Ingredients
For the Meatballs
-
1 lb (450 g) ground beef (80/20 recommended)
-
½ lb (225 g) ground pork (adds juiciness and flavor)
-
½ cup plain breadcrumbs (or panko)
-
¼ cup whole milk
-
1 large egg, lightly beaten
-
½ small yellow onion, grated (about 3 tbsp)
-
2 cloves garlic, minced
-
1 tsp salt
-
½ tsp black pepper
-
½ tsp ground allspice (optional, but classic)
-
¼ tsp ground nutmeg
-
2 tbsp fresh parsley, chopped (plus more for garnish)
-
2 tbsp olive oil or butter, for frying
For the Gravy
-
2 tbsp unsalted butter
-
2 tbsp all-purpose flour
-
2 cups beef broth (low sodium preferred)
-
½ cup heavy cream (or whole milk for lighter gravy)
-
1 tsp Worcestershire sauce
-
½ tsp Dijon mustard (optional – adds depth)
-
Salt and pepper, to taste
Step-by-Step Instructions
Intensity Level: Medium – Active cooking, but rhythmic
1. Prepare the Meatball Mixture
In a large bowl, combine breadcrumbs and milk. Let sit for 2 minutes until the crumbs absorb the liquid (this guarantees tender meatballs). Add the egg, grated onion, garlic, salt, pepper, allspice, nutmeg, and parsley. Mix until just combined.
Add the ground beef and pork. Using your hands (or a fork), gently mix until the spices are distributed. Do not overwork the meat – overmixing leads to dense, tough meatballs.
2. Shape the Meatballs
Roll the mixture into 1.5-inch balls (about 2 tablespoons each). You should get 20–24 meatballs. Place them on a plate or baking sheet.
Pro tip: Wet your palms slightly with water – the mixture won’t stick to your hands.
3. Sear the Meatballs (10 minutes)
Heat 2 tablespoons of olive oil or butter in a large skillet or Dutch oven over medium-high heat. Once shimmering, add the meatballs in a single layer (work in two batches if needed). Sear for 2–3 minutes per side, turning gently with tongs, until deeply browned on at least three sides. They will not be fully cooked inside yet – that’s fine.
Remove meatballs to a plate. Do not wipe out the pan – those browned bits are pure flavor.
4. Make the Gravy Base (5 minutes)
Reduce heat to medium. Add 2 tablespoons of butter to the same pan. Once melted, sprinkle in the flour. Whisk constantly for 1–2 minutes until the mixture turns a light golden brown (this is a roux – it removes the raw flour taste).
5. Build the Gravy (5 minutes)
Slowly pour in the beef broth while whisking vigorously to prevent lumps. The mixture will thicken almost immediately. Add the Worcestershire sauce and Dijon mustard (if using). Bring to a gentle simmer, scraping the bottom of the pan to release all the browned bits.
6. Finish the Meatballs in the Gravy (5 minutes)
Return the meatballs to the skillet, nestling them into the gravy. Reduce heat to medium-low. Stir in the heavy cream. Simmer uncovered for 5–7 minutes, spooning gravy over the meatballs occasionally, until the meatballs are cooked through (165°F / 74°C internal temp) and the gravy is thick enough to coat the back of a spoon.
7. Adjust and Serve
Taste the gravy and add salt/pepper as needed (broths vary in saltiness). Garnish with fresh parsley.
Serving Suggestions
-
Over buttered egg noodles or mashed potatoes
-
Alongside steamed green beans or roasted Brussels sprouts
-
With a dollop of lingonberry or cranberry sauce (traditional Swedish touch)
Storage & Reheating
-
Refrigerator: Airtight container for up to 4 days. Gravy thickens when cold – thin with a splash of broth or milk when reheating.
-
Freezer: Freeze meatballs + gravy together for up to 3 months. Thaw overnight in fridge, then reheat gently on the stovetop.
Recipe Intensities Explained
| Element | Intensity (1–5) | Why |
|---|---|---|
| Prep | 2 | Grating onion and mixing is simple |
| Shaping | 2 | Repetitive but relaxing |
| Searing | 3 | Hot oil + splatter potential; requires focus |
| Gravy | 2 | Whisking + timing, but very forgiving |
| Overall | 2.5 | A great “next step” after beginner recipes |
Nutrition Information (per serving – 5–6 meatballs + ¼ of gravy)
*Calculated using 80/20 beef, pork, heavy cream, and 2 tbsp olive oil for frying. Values are estimates.*
| Nutrient | Amount |
|---|---|
| Calories | 595 |
| Protein | 32 g |
| Total Fat | 42 g |
| – Saturated Fat | 19 g |
| Cholesterol | 175 mg |
| Carbohydrates | 14 g |
| – Fiber | 1 g |
| – Sugars | 3 g |
| Sodium | 720 mg |
| Calcium | 98 mg |
| Iron | 3.5 mg |
| Potassium | 520 mg |
To lighten: Use ground turkey/chicken, skim milk instead of cream, and reduce butter to 1 tbsp in gravy.
Final Notes from the Kitchen
This meatball and gravy recipe is the definition of honest, hearty cooking. The time investment (45 minutes total) pays off in layers of flavor you simply cannot get from frozen meatballs and a packet mix. The intensity is medium because you’ll be multitasking – browning, whisking, simmering – but every step is straightforward.