Ingredients
Equipment
Method
- Pat the beef chunks dry with paper towels. Season generously with salt and pepper.
- Heat olive oil in a large Dutch oven over medium-high heat until shimmering. Working in batches, sear the beef on all sides until deeply browned, about 4-5 minutes per batch. Transfer to a plate and set aside.
- Reduce heat to medium. Add onion, carrots, and celery to the pot. Cook, stirring occasionally, until softened and lightly golden, about 8 minutes. Scrape up any browned bits from the bottom.
- Stir in garlic and tomato paste. Cook for 1 minute until fragrant and the paste darkens slightly.
- Pour in the red wine. Bring to a simmer, scraping the bottom to release any remaining fond. Let the wine reduce by half, about 3-4 minutes.
- Return the beef and any accumulated juices to the pot. Add crushed tomatoes, rosemary sprigs, and bay leaves. Stir to combine.
- Bring to a gentle simmer, then cover partially with a lid. Cook on low heat for 2 hours, stirring occasionally, until the beef is fork-tender and shreds easily.
- Remove from heat. Discard rosemary sprigs and bay leaves. Using two forks, shred the beef into bite-sized pieces directly in the pot.
- Stir in the whole milk. Simmer uncovered for 10 minutes to meld flavors and slightly thicken the sauce. Taste and adjust salt and pepper.
- Meanwhile, cook pasta in a large pot of salted boiling water until al dente. Reserve 1 cup of pasta water before draining.
- Add drained pasta to the ragu pot. Toss over low heat, adding pasta water a splash at a time if needed to loosen the sauce. Serve immediately with Parmesan.
Notes
Storage: Refrigerate leftover ragu (without pasta) in an airtight container for up to 4 days. Reheat gently on the stovetop, adding a splash of water or broth. Freeze for up to 3 months. For a dairy-free version, omit the milk or substitute with unsweetened oat milk. Gluten-free: serve over polenta or gluten-free pasta. Always handle hot oil and pans with care to avoid burns.
