Ingredients
Equipment
Method
- Heat 2 tablespoons olive oil in a Dutch oven or large pot over medium heat until shimmering. Stir in 1 finely diced small yellow onion, 1 peeled and finely diced small carrot, 1 finely diced small celery stalk, and 3 minced garlic cloves. Cook, stirring occasionally, until the vegetables are softened, 8 to 10 minutes.
- Add 1 pound lean ground beef, 1 1/2 teaspoons kosher salt, 1/4 teaspoon black pepper, and 1/8 teaspoon ground nutmeg. Cook, breaking up the beef into smaller pieces, until cooked through, 5 to 7 minutes.
- Stir in 1 cup whole milk and cook, stirring occasionally, until evaporated, 10 to 12 minutes. Stir in 1 cup dry white wine and cook, stirring occasionally, until evaporated, 10 to 12 minutes.
- Stir in 1 (28-ounce) can whole peeled tomatoes and their juices, breaking up the tomatoes with your hands into bite-size pieces as you add them to the pot, and 1 cup low-sodium chicken broth. Bring to a simmer. Reduce the heat to low to maintain a very gentle simmer. Simmer, stirring occasionally and breaking up any large pieces of tomato with a wooden spoon, until the sauce is thickened and the flavors meld, about 1 1/2 hours.
Notes
Storage: Refrigerate in an airtight container for up to 4 days or freeze for up to 3 months.
Tomato swap: Crushed or diced tomatoes (and the juices) can be used as a substitute for the can of whole peeled tomatoes. If you use diced tomatoes, you may want to consider pureeing the tomatoes first.
Broth swap: Low-sodium vegetable or beef broth can be used as a substitute for chicken broth.
Meat swap: While not traditional, other types of ground meat (or a combination) can be used in place of ground beef.
Milk swap: While whole milk is definitely preferred, 2% milk will get the job done in a pinch. Do not use 1% or skim milk in this recipe.
Shortcut: If you'd rather skip the chopping, coarsely chop the vegetables and pulse them a few times in a food processor until blitzed into small pieces.