Stovetop Shell Mac and Cheese
Real cheese sauce, no baking, ready in 20 minutes. Sharp cheddar, proper béchamel, starchy pasta water. The boxed stuff can't compete.
Jump to recipe
Prep Time
5min
Cook Time
15min
Total Time
20min
Servings
4
Calories
520
Nutrition Facts
Per serving · 4 servings per recipe
Scale Ingredients
Original recipe makes 4 servings.
Ingredients
- 12 oz (350g) shell pasta (or elbow macaroni, whatever you have)
- 3 tbsp butter
- 3 tbsp plain flour
- 2 cups (500ml) whole milk
- 2 cups (7 oz / 200g) grated sharp cheddar cheese
- 3/4 cup (2.8 oz / 80g) grated Gruyère or mozzarella
- 1 tsp Dijon mustard
- 1/2 tsp garlic powder
- Salt and black pepper
- Pinch of nutmeg (optional)
Instructions
- Cook shells in salted boiling water according to the package, minus one minute. You want them slightly underdone since they finish in the sauce. Drain and set aside.
- In the same pot, melt butter over medium heat. Add flour and whisk constantly for 1 minute. It should smell nutty, not burnt.
- Slowly pour in milk while whisking. Keep whisking until the sauce thickens and coats the back of a spoon, about 3-4 minutes.
- Remove from heat. Stir in cheddar and Gruyère a handful at a time until fully melted and smooth. Add mustard, garlic powder, nutmeg, salt, and pepper.
- Add the drained shells back in and stir until everything is coated. The sauce gets into the cups of each shell.
- Eat immediately. This doesn't sit around well. The sauce tightens as it cools.
Notes
Critical insight: The flour-butter-milk base is a classic béchamel. It is the only thing standing between you and a separated, grainy cheese mess. Whisking the milk in slowly creates a stable emulsion. Sharp cheddar is mandatory; mild cheddar loses all its flavor once melted into the milk.
Substitutions: You can use elbow macaroni, cavatappi, or any pasta with ridges to hold the sauce. Gruyère adds a beautiful nutty pull, but gouda or fontina work wonderfully too. Avoid pre-shredded bagged cheese—the anti-caking agents will make your sauce gritty.
Storage: Best eaten immediately, as the starch from the pasta will continue to absorb the sauce, making it tighter and less creamy as it sits. If storing, keep in the fridge for up to 3 days. When reheating, add a splash of milk and warm gently on the stove.
Variations: Stir in a cup of steamed broccoli florets or peas right at the end. For a smoky twist, add diced cooked bacon or use smoked gouda instead of Gruyère. Top with toasted panko breadcrumbs if you want crunch without baking.
Pairs with: Serve as a decadent side to Smash Burgers or Crispy Chicken Tenders for the ultimate comfort food lineup.
More like this

Crispy Chicken Tenders (Better Than Takeout)
Double-dredged chicken tenders with a shatteringly crispy crust. No buttermilk marinade needed. Ready in 30 minutes and better than anything from a drive-through.
Good for a tired Tuesday

Crispy Smash Burgers (15 Minutes)
Thin, crispy-edged patties with melted American cheese on a toasted bun. 15 minutes flat and better than most burger joints.
Good for a tired Tuesday

15-Minute Black Bean Tacos
Smashed, pan-fried black beans with all the fixings. Crispy, cheap, and fast. Nobody will ask where the meat is.
Good for a tired Tuesday

Common Ingredients Pressure Cooker Beef Stew
A no-fuss beef stew built in the pressure cooker with brisket cubes, potatoes, carrots, onions, bay leaves, and thyme.
Actually keeps you full