Pasta Carbonara

Food

Pasta Carbonara

Rome's most debated dish — the original and its northern adaptation

Prep 10 min
Cook 20 min
Servings 4
Few dishes inspire the kind of territorial fury that carbonara does. Mention cream to a Roman cook and watch the color drain from their face. Suggest that guanciale might be substituted with smoked bacon and prepare for a lecture that begins in 1944 and ends only when you concede. The passion is disproportionate to the dish's youth — carbonara almost certainly didn't exist before the Second World War, a fact that embarrasses its defenders who speak of it as though it were ancient. The name offers clues without giving answers. Carbonaro means charcoal burner, and one credible theory holds that the dish originated with the carbonari — the men who burned wood to charcoal in the Apennine highlands, who carried preserved pork and dry cheese and needed no refrigeration. Another theory credits American soldiers stationed in Rome in 1944, whose ration packs contained powdered eggs and cured bacon and who encountered pasta for the first time in life-changing quantities. The truth is almost certainly lost, which is why the arguments never stop. What isn't contested is the technique, and this is where carbonara becomes genuinely interesting. The sauce is a cooked emulsion of egg, fat, starch, and cheese — no heat source, no cream, no stabilizer beyond physics and confidence. The hot pasta does the cooking. Get the temperature wrong in either direction and you have either soup or scrambled eggs. Get it right and you have something that no restaurant or supermarket sauce can approximate: glossy, rich, coating every strand without a single drop of liquid pooling at the bottom of the bowl. The Northern European version — bacon, cream, whole eggs — solves the temperature problem entirely. It sacrifices the precise, mineral quality of the Roman original for something more forgiving, richer, and if we're honest, perfectly good on its own terms. Both versions follow.

Scale Recipe

1 10 20

Instructions

0/12 complete

Render the guanciale low and slow

Place the guanciale in a cold, dry pan and set over medium-low heat. Render gradually for 8–10 minutes, turning occasionally, until the fat is translucent and the meat edges are golden and slightly crisp. The fat in the pan is part of your sauce — do not drain it. Remove from heat and set aside warm.

Low heat prevents the fat from seizing. The rendered fat becomes the foundation of the emulsion.

Make the egg and cheese mixture

In a wide bowl, whisk together the whole eggs, yolks, Pecorino Romano, Parmigiano Reggiano, and 1 tsp of the cracked black pepper until smooth and pale.

Pre-mixing the cheese into the eggs creates a more stable emulsion and prevents clumping when it hits the hot pasta.

Cook the pasta in aggressively salted water

Bring a large pot of water to a rolling boil. Salt heavily — it should taste of the sea. Cook pasta until 1 minute before al dente. Before draining, reserve at least 200ml of the starchy cooking water.

The pasta water is the third ingredient in your sauce. Its starch content is what prevents the eggs from tightening too quickly.

Temper the egg mixture

Add 2–3 tablespoons of hot pasta water to the egg mixture and whisk immediately. The mixture should feel slightly warm to the touch — no longer cold from the refrigerator.

This raises the egg temperature gradually and dramatically reduces the risk of scrambling. It is the professional technique.

Combine off heat

Drain the pasta and transfer immediately to the pan with the guanciale and its rendered fat. Remove from heat entirely. Toss for 30 seconds to coat the pasta in fat and allow it to cool very slightly.

If the pan is still on the heat, the eggs will scramble. Off heat is not a suggestion.

Add the egg mixture and emulsify

Pour the tempered egg mixture over the pasta. Toss continuously and vigorously for 60–90 seconds, adding pasta water a splash at a time until the sauce is glossy and coats every strand without a drop of liquid pooling at the bottom.

The tossing motion creates the emulsion. Stop and the sauce breaks.

Finish and serve immediately

Plate the pasta and top with the remaining cracked black pepper and a final shower of grated Pecorino. Serve at once — carbonara waits for no one.

There is no reheating carbonara. Eat it the moment it achieves the right texture.

Sauté the aromatics and bacon

Heat the olive oil in a wide pan over medium heat. Add bacon and cook 5–6 minutes until beginning to crisp at the edges. Add onion and cook 4 minutes until softened and golden, then add garlic for the final 1 minute.

The onion adds sweetness that balances the cream; omitting it keeps the dish sharper and closer to its Roman ancestor.

Make the cream and egg mixture

In a bowl, whisk together the eggs, double cream, and half the grated cheese. Season generously with black pepper. Do not salt yet — the bacon and cheese carry it.

The cream acts as a temperature buffer, allowing the eggs to set into a cohesive sauce rather than scramble.

Cook the pasta

Boil pasta in generously salted water until al dente. Reserve 100ml pasta water before draining.

Combine and finish on low heat

Drain the pasta and add directly to the pan with the bacon over low heat. Pour in the cream mixture and toss continuously for 2–3 minutes, adding splashes of pasta water until the sauce is smooth and coats every strand.

Unlike the Roman version, gentle low heat is correct here — the cream allows you to coax the sauce without risk of scrambling.

Serve

Plate immediately, topped with remaining cheese and a generous twist of black pepper.
<button type="button" class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded" hx-post="/api/community/rate" hx-vals='{&quot;slug&quot;:&quot;pasta-carbonara&quot;,&quot;rating&quot;:1}' hx-target="#engagement-section" hx-swap="outerHTML" aria-label="Rate 1 out of 5" > <svg class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" > <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg> </button> <button type="button" class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded" hx-post="/api/community/rate" hx-vals='{&quot;slug&quot;:&quot;pasta-carbonara&quot;,&quot;rating&quot;:2}' hx-target="#engagement-section" hx-swap="outerHTML" aria-label="Rate 2 out of 5" > <svg class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" > <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg> </button> <button type="button" class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded" hx-post="/api/community/rate" hx-vals='{&quot;slug&quot;:&quot;pasta-carbonara&quot;,&quot;rating&quot;:3}' hx-target="#engagement-section" hx-swap="outerHTML" aria-label="Rate 3 out of 5" > <svg class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" > <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg> </button> <button type="button" class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded" hx-post="/api/community/rate" hx-vals='{&quot;slug&quot;:&quot;pasta-carbonara&quot;,&quot;rating&quot;:4}' hx-target="#engagement-section" hx-swap="outerHTML" aria-label="Rate 4 out of 5" > <svg class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" > <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg> </button> <button type="button" class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded" hx-post="/api/community/rate" hx-vals='{&quot;slug&quot;:&quot;pasta-carbonara&quot;,&quot;rating&quot;:5}' hx-target="#engagement-section" hx-swap="outerHTML" aria-label="Rate 5 out of 5" > <svg class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" > <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg> </button>

Be the first to rate