Equipment
* optional
Ingredients
Meatballs
- 350 g ground beef, chilled
- 150 g ground pork, chilled
- 200 g brown lentils, cooked, drained, and coarsely mashed
- 45 g panko breadcrumbs
- 45 ml whole milk
- 1 egg, lightly beaten
- 35 g parmigiano-reggiano cheese, finely grated
- 3 garlic, finely minced
- 15 g flat-leaf parsley, finely chopped
- 5 g kosher salt
- 2 g black pepper, freshly cracked
- 1 g dried oregano
- 15 ml olive oil, liquid
Tomato Sauce
- 15 ml olive oil
- 1 yellow onion, finely diced
- 4 garlic, minced
- 30 g tomato paste
- 800 g canned crushed tomatoes
- 240 ml low-sodium beef broth
- 4 g kosher salt
- 1 g black pepper
- 10 g fresh basil, torn leaves
Nutrition (per serving)
Nutrition is estimated per serving. Nutrients without complete source data are omitted.
Full nutrition
- Calories
- 627 kcal
- Protein
- 38 g
- Carbohydrates
- 42 g
- Fat
- 36 g
- Fiber
- 10 g
- Sodium
- 1739 mg
- Saturated Fat
- 13 g
- Calcium
- 262 mg
- Iron
- 7.6 mg
- Vitamin A
- 95 mcg
- Vitamin C
- 31 mg
- Water
- 421 g
Sources: Aggregated Public Data, USDA FoodData Central
Method
Combine panko breadcrumbs and whole milk in a large mixing bowl, letting the panade hydrate for 5 minutes until soft and cohesive.
Add the ground beef, ground pork, coarsely mashed brown lentils, beaten egg, grated Parmigiano-Reggiano, minced garlic, chopped flat-leaf parsley, kosher salt, black pepper, and dried oregano into the bowl with the panade, mixing gently by hand until just unified.
Line a rimmed baking sheet with parchment paper, then gently roll the mixture into 16 uniform balls of approximately 50g each and arrange them in a single layer.
Heat 15 ml olive oil in a Dutch oven over medium heat at 175°C (350°F), and sear the meatballs in two separate batches for 4 minutes per batch, turning carefully with tongs until deep golden-brown crust forms on at least two sides, then transfer to the lined baking sheet.
Add the remaining 15 ml olive oil and diced yellow onion to the Dutch oven over medium heat at 150°C (300°F), cooking for 5 minutes while scraping up browned bits until the onion becomes translucent and soft.
Add the minced garlic and tomato paste to the softened onions, stirring constantly with a wooden spoon for 2 minutes until fragrant and the paste darkens to a brick-red color.
Pour the low-sodium beef broth into the pot, scraping the bottom vigorously with a wooden spoon to dissolve all remaining browned fond completely.
Pour in the canned crushed tomatoes, 4g kosher salt, and 1g black pepper, stirring well and bringing the sauce to a gentle simmer at 90°C (195°F).
Gently nestle the seared meatballs and any accumulated juices into the simmering sauce, partially cover with the lid, and braise on low heat for 25 minutes until an instant-read digital meat thermometer inserted into the center of the largest meatballs reads at least 71°C (160°F).
Remove the pot from the heat source, scatter torn fresh basil leaves across the sauce, and let rest for 10 minutes before serving.
Chef's Notes
- Coarsely mashing the cooked lentils preserves textural variety, preventing the interior of the meatballs from becoming paste-like while seamlessly blending with the ground meats.
- The panade composed of milk-soaked panko breadcrumbs coats meat proteins, creating a gel barrier that traps moisture and renders lean beef exceptionally tender.
- Browning the tomato paste in the rendered animal fat and onion mixture caramelizes natural sugars and neutralizes raw metallic acidity before liquid is reintroduced.
- A 10-minute rest off the heat allows the protein strands to relax, locking savory meat juices inside rather than expelling them onto the plate upon cutting.
Storage
Refrigerator: 4 days — Cool promptly and refrigerate in an airtight container within two hours of preparation.
Freezer: 3 months — Freeze meatballs submerged in sauce within airtight freezer-safe containers, leaving 15 mm headspace for expansion.
Reheating: Reheat meatballs and sauce in a covered pan over medium-low heat on the stovetop, stirring gently, until heated through to a minimum internal temperature of 74°C (165°F).
Troubleshooting
Meatballs disintegrate or crumble into the sauce while simmering
Cause: Meatballs were turned prematurely during searing before a crust formed, or the sauce was stirred too aggressively.
Fix: Do not attempt to reshape them; allow the crumbles to integrate into the sauce to create a rich, hearty meat ragu.
Prevention: Ensure the oil is shimmering hot before adding meatballs and allow a crust to release naturally before flipping. Stir only by gently swirling the pot.
Meatballs taste dry and dense
Cause: The meat mixture was over-kneaded, or the lentils were completely pureed into an unyielding paste rather than coarsely mashed.
Fix: Cannot be fixed internally, but simmering for an extra 5 minutes allows the exterior to absorb additional tomato sauce.
Prevention: Mix with a light touch until the ingredients are just combined, and keep coarse lentil fragments visible.
Internal temperature reads below 71°C (160°F) after 25 minutes
Cause: The Dutch oven simmer was set too low or the lid was left completely off, allowing heat to escape.
Fix: Cover the pot completely with the lid and continue simmering for an additional 5 to 7 minutes until the thermometer registers 71°C (160°F).
Prevention: Maintain a steady low simmer with slow surface bubbling and keep the lid partially covering the pot.
Cultural Context
Simmering meatballs directly in rich tomato sauce draws from southern Italian home cooking traditions, where meatballs known as polpette al sugo are braised to flavor the family Sunday gravy. Integrating cooked legumes echoes rural Mediterranean cucina povera, where home cooks extended finite meat supplies with economical, nutrient-dense lentils. This contemporary interpretation bridges that resource-conscious tradition with modern nutritional balance.










