Smooth Beef Ragu
A long-simmered beef and tomato sauce with no chunks anywhere. The aromatics are processed to a paste so they dissolve completely into the base, and a 2.5-hour simmer fuses everything into one glossy thing. Milk goes in before the tomato, which is the step that separates a ragu from meat in tomato sauce. No wine; browned tomato paste and a splash of vinegar do that work instead.
Ingredients
3 servings (full plates)- 1 lb (454g) ground beef, 90/10
- 1 tbsp olive oil
- 1/2 medium yellow onion (~55g)
- 1 medium carrot (~60g)
- 1 celery stalk (~40g)
- 3 garlic cloves, grated on a microplane
- 1 1/2 tbsp (24g) tomato paste
- 1 cup (213g) tomato sauce - about half a 15oz can
- 1/2 cup (120ml) chicken stock, plus more for topping up
- 1/2 cup (122g) 2% milk
- 1 tsp red wine vinegar
- Grated nutmeg, a few scrapes
- 1 bay leaf
- Kosher salt and black pepper (about 1/2 tsp pepper in the meat, plus a grind to finish)
- 1/4 to 1/2 tsp MSG (optional, to finish - see notes)
- 1 parmesan rind (optional)
- Rigatoni, to serve (56g / 2 oz dry per plate)
- Parmesan, finely grated (15g per plate)
Method
- 1Make the battuto
Rough-chop the onion, carrot, and celery and pulse them in a food processor to a coarse, damp paste - smaller than mince, not quite puree. Pulse rather than run it; a continuous blend releases water and you get a slurry that steams instead of sauteing. This step is the whole reason the finished sauce is smooth. Cut this fine and it dissolves over the simmer; cut it in dice and it stays dice no matter how long you cook it.
- 2Sweat it slowly
Olive oil into a heavy 3-quart pot over medium-low. Add the battuto and a pinch of salt. Cook 12-15 minutes, stirring occasionally, until it is soft, sweet-smelling, and has gone from bright to dull orange-brown. It should not brown or crisp - if it is sizzling hard, drop the heat. Raw carrot and onion taste sharp and vegetal; this converts that to sweetness and depth. The salt pulls water out so they braise in their own moisture first. Unglamorous, slow, and most of the flavor foundation. Do not rush it. Stir the grated garlic in for the LAST MINUTE only - it burns fast and turns bitter, and it needs no more time than that.
- 3Caramelize the tomato paste
Push the battuto to the edges of the pot, raise heat to medium, and drop the tomato paste into the bare center. Spread it thin and cook 2-3 minutes, stirring only occasionally, until it darkens from red to deep brick-rust and starts sticking. Then stir it through the vegetables. This is the step doing the work wine would have done - raw paste is sour and flat, but cooked in fat until it darkens the sugars caramelize and the glutamates concentrate. Do not walk away; it goes from perfect to burnt in under a minute, and burnt paste is bitter and unrecoverable.
- 4Add the beef cold and break it up
Add the raw beef straight into the pot. Before it has time to seize, work it apart with a wooden spoon or potato masher into the finest crumb you can manage. Keep breaking it up as it loses its pink, 8-10 minutes over medium. Season with salt and a generous amount of black pepper — about 1/2 tsp, more than feels right. Bolognese takes more pepper than you expect and it is easy to underdo here. Pebbly, clumpy meat is the other texture failure mode, and it happens when you press cold beef into a hot pan and let it bond before breaking it. You are deliberately not searing - the depth came from the tomato paste, and the payoff for skipping the crust is meat that goes tender and disappears into the sauce. Then tip the pot and spoon off the rendered fat, leaving roughly a tablespoon behind.
- 5Milk, before any acid
Pour in the milk, add a few scrapes of nutmeg, and simmer gently, stirring now and then, until it is almost fully absorbed - 10-12 minutes. It may look slightly curdled; ignore that, it resolves over the long simmer. The order is not negotiable. Dairy tenderizes the meat proteins and rounds the sauce, but only in a low-acid environment - add tomato first and the acid seizes the milk into permanent grainy curds. The nutmeg is traditional and nearly invisible in the finished dish; you would only notice its absence.
- 6Vinegar, then tomato, then the long simmer
Stir in the vinegar and let it cook off for 30 seconds. Add the tomato sauce, the stock, the bay leaf, and the parmesan rind if you have one. Bring to a bare simmer - occasional lazy bubbles, not a rolling boil - set the lid slightly ajar, and leave it for 2.5 hours. Check every 30-40 minutes; if it tightens past a loose, spoonable consistency, add stock or water a splash at a time. If it is soupy at the end, take the lid off for the last 20 minutes. The vinegar stands in for wine, and adding it before the tomato lets the harsh edge cook off. The long low simmer is the actual point of the dish: it breaks the battuto down past recognition, makes lean 90/10 tender instead of dry, and fuses everything into one glossy thing rather than meat sitting in sauce. A hard boil toughens the meat and reduces too fast.
- 7Season at the end
Fish out the bay leaf and the parmesan rind. Taste and adjust salt now, not during - it concentrates as it reduces. If it tastes flat rather than under-salted, this is where MSG goes: start at 1/4 tsp, stir in, taste again, and pull back on the salt rather than stacking it on top. Finish with a fresh grind of black pepper after the salt is right — pepper added at the end reads brighter than pepper that simmered for hours, and the dish wants both.
- 8Finish the pasta in the sauce
Boil the rigatoni in well-salted water in a roomy pot (2-3 quarts even for a single portion) and pull it at about 1 minute short of the box time — NOT 2. Rigatoni is thick-walled and under-cooks easily; the first cook of this recipe came out slightly firm at 2 minutes short. Reserve a mug of pasta water. Move the sauce you are eating to a wide skillet, add the drained pasta and pasta water a TABLESPOON AT A TIME (easy to overshoot — too much water gives a loose sauce that never clings, and it dilutes the starch that makes the emulsion work), and toss over medium heat for a minute or two until the sauce clings and turns glossy. Kill the heat, add the parmesan, toss again, and add more pasta water if it tightens. The starch in the pasta water emulsifies the fat and liquid into something that grips - this is the difference between sauce sitting on pasta and sauce coating pasta. Cheese goes in off the heat; parmesan breaks and turns stringy if you boil it.
Notes
FIRST COOK NOTES (2026-08-02): four things to change next time. (1) PEPPER — the first batch was underpeppered; go heavier in the meat and add a finishing grind. (2) PASTA — pulled 2 min short of box time came out too firm; 1 min short is right for rigatoni. (3) PASTA WATER — went heavy-handed and the sauce stayed loose instead of clinging; add it a tablespoon at a time. (4) TOMATO PASTE — did not brown far enough (cold paste straight from the can is stiff and will not spread thin). Fix: stir the paste with a tablespoon of stock in a small bowl first so it spreads in one motion, or stir it into the battuto at the end of the sweat and accept slightly less caramelization. Under-browned paste is the most likely reason a batch needs MSG. A note on pots: nonstick works but gives you no fond to deglaze. An enameled Dutch oven is better for a 2 lb batch — the mass steadies the simmer on an electric coil, and you get browning. Watch the bottom more closely during the paste and meat stages. SUPERSEDES THE JULY 2026 VERSION. That build used 80/20 chuck with the fat left in, box-grated aromatics, passata, and a 90-minute simmer. This one is leaner, smoother, and simmers longer. If you want the old fat-forward version, it is the one that read 'do not drain.' SMOOTHNESS: this recipe exists to have no chunks. The mechanism is the food processor - a pulsed battuto dissolves completely over 2.5 hours where grated aromatics can still leave traces and diced ones stay visible. Celery is the holdout: fibrous, and it will leave threads unless it goes through the processor with everything else. Tomato sauce over crushed tomatoes for the same reason - crushed leaves visible pulp, sauce is already smooth, and the paste supplies the concentration crushed would have given. WHY 90/10 NOT 80/20: 80/20 plus cheese puts a plate at ~670 kcal with 31g fat, which is 41 percent of a 75g fat day for 29 percent of the calories - badly out of proportion. Dropping to 90/10 and skipping any pork fat cuts 14g of fat and 110 kcal per plate and ADDS 4g protein. The tradeoff is real but small: less fat to emulsify at the end, so the pasta-water toss matters more. Do not go to 93/7 - in a 2.5-hour simmer it goes grainy and dry even with the milk. 90/10 is where the texture still holds. DRAINING: the macros assume you pour off roughly a third of the rendered fat after browning, leaving about a tablespoon. This is the softest assumption in the numbers - a harder or lazier drain swings it by ~5g fat per serving. It is also a texture call, not just a macro one: undrained beef makes a greasy sauce that separates. WHY NO WINE: browned tomato paste covers most of what wine contributes (depth, glutamate) and a teaspoon of red wine vinegar covers the acid. Vinegar keeps indefinitely; an opened bottle of wine oxidizes in about a week. Do not buy cooking wine - it is salted bad wine. WHY MILK: it tenderizes the grind and rounds the tomato's acid, and it is a big contributor to the unified consistency. It must go in BEFORE the tomato or the acid curdles it permanently. PARMESAN RIND: free flavor. A wedge cut from a wheel has a hard dry outer edge that will not grate - drop it in whole and fish it out at the end. Small retail wedges are often trimmed clean and may have none; the sauce is fine without it. Sartori Classic is aged ~10 months, milder and sweeter than Parmigiano-Reggiano, which suits a milk-enriched ragu better than something sharp. Pecorino Romano is NOT a clean swap here - sheep's milk, roughly twice as sharp and saltier, and it fights a rounded sauce. Save it for cacio e pepe and amatriciana. MACROS: the nutrition block is a FULL PLATE - one third of the sauce plus 56g (2 oz) dry rigatoni and 15g parmesan, at ~600 kcal / 46P / 21F / 55C. Sauce only, per serving: ~334 kcal / 34P / 16F / 13C. At 24 percent of a 2300 kcal day it runs 22 percent of the fat budget and 25 percent of the carb budget - proportionate, which the 80/20 version was not. Weigh portions if the log needs to be honest; a 3-way split by eye drifts. FINISHED YIELD: a 1 lb batch lands around 825 g of sauce (measured 2026-08-02, 2.5 h simmer, lid ajar in a 3 qt pot). One serving is 275 g. Weigh the pot and divide by three rather than eyeballing — a thick sauce eyeballs badly. Yield varies with how hard you reduce; the macros are a three-way split regardless of the total, so a looser or tighter batch does not change per-serving numbers. SCALING: 1 lb is the practical floor. Less than that and the surface-area-to-volume ratio works against you - it scorches or reduces to paste before the simmer has done its job. 2 lb in a 5-6 quart Dutch oven is the efficient version if the freezer has room; add 15-20 minutes to reduce. Better on day two, and it freezes well. DO NOT USE RANCH BEEF: 2.5 hours under tomato erases the flavor that makes grass-fed worth having. Buy supermarket grind for this. Save the good stuff for burgers, chili, or a roast. GARLIC: not traditional in a Bolognese, but it costs ~4 kcal per serving and it is wanted here. GRATE it on a microplane, do not mince - grated garlic dissolves completely, minced garlic softens but stays as discrete pieces, which breaks the no-chunks rule. Last minute of the sweat only; 15 minutes of even low heat scorches it bitter. BAY: ONE leaf, not two. The old version called for two, but that was a much larger sauce volume (700g passata vs ~213g sauce plus stock and milk here) - two in this smaller pot goes medicinal and eucalyptus-y. Bay's reputation for doing nothing comes from short cooks and dead leaves; over 2.5 hours it contributes a faint pine-and-tea background you notice mainly by its absence. Crack one and smell it first - bay goes flat after a year or two in the cabinet. UMAMI, IF IT READS THIN: dropping the salt pork cost some savory backbone. If the finished sauce tastes flat in a way salt does not fix, the lever is glutamate, not more salt. MSG is the direct version and the best option here - anchovy and miso are just glutamate delivery vehicles that bring their own baggage. Dose 1/4 to 1/2 tsp for a 1 lb batch (a tsp is ~4-5g, so 1/2 tsp in ~1kg of sauce is ~0.2% by weight, comfortably in the savory range). Above ~0.5% it goes metallic and cloying. Add it at the final seasoning step so you can judge the effect against a known baseline, and pull back slightly on the salt rather than adding it on top - MSG is about a third the sodium of table salt by weight and does some of salt's perceptual work. It works especially well in this dish because glutamate and nucleotides amplify each other multiplicatively: the beef supplies inosinate, the browned paste and parmesan already supply glutamate, and the MSG stacks onto that. CAVEAT: MSG makes existing flavor louder, it does not create depth that is not there. If the sauce is flat because the tomato paste did not caramelize far enough or the simmer got cut short, MSG papers over the gap and you will keep adding more. Diagnose first. FALLBACKS if the MSG runs out: half an anchovy fillet melted into the paste step, or a teaspoon of white miso whisked into the stock. Both dissolve invisibly, neither tastes like itself in the finished sauce. VERSION THREE: pancetta or ground pork for a third of the beef, if the fat budget ever allows. Salt pork rendered and the solids discarded, cooking the battuto in the fat, gets the pork backbone with no chunks - it costs about 5g fat per serving.