Soups & Stews
This mac and cheese soup recipe transforms humble elbow macaroni into a creamy, three-cheese masterpiece that feels like a hug in a bowl. The secret lies in slow-cooked broth that infuses every noodle with rich, velvety depth—no lumps, no shortcuts.
I perfected this during a Boston winter when my apartment's tiny stove couldn't handle baking a casserole, and it became our family's go-to when comfort was the main ingredient.
The foundation is a foolproof roux-based broth that simmers for 20 minutes, developing layers of savory flavor before the pasta and cheese join the party. Sharp cheddar provides the backbone, while Gruyère adds nutty richness and cream cheese ensures that signature melt-in-your-mouth texture.
The pasta cooks directly in the broth, absorbing all that goodness without turning mushy.
By the time you ladle the first bowl, you'll have a soup that's restaurant-quality—creamy yet light enough to eat a full bowl without regret. The cheese clings to each noodle, the broth coats your spoon with every sip, and the aroma alone will have everyone gathering around the table.
This is comfort food elevated, with just enough technique to make it special but simple enough for weeknights.
Serve with a sprinkle of fresh parsley or extra cheese on top, and consider adding crispy bacon or shredded chicken for heartier portions. The leftovers reheat beautifully, making this the ultimate meal-prep-friendly dish that still tastes like you slaved over it. Let's make it—your taste buds will thank you.
Ingredients for mac soup
Eight simple ingredients transform into restaurant-quality mac and cheese soup with velvety broth.
| Ingredient | Amount | Notes |
|---|---|---|
| Elbow Macaroni 🍝 | 8 oz | Medium or small elbow preferred |
| Unsalted Butter 🧈 | ½ cup | Full-fat for best flavor |
| All-Purpose Flour 🌾 | ½ cup | For roux base |
| Sharp White Cheddar Cheese 🧀 | 2 cups | Shredded, block preferred |
| Gruyère Cheese 🧀 | ½ cup | Shredded, nutty flavor |
| Cream Cheese 🧀 | 4 oz | Softened for smooth texture |
| Chicken Broth 💧 | 4 cups | Low-sodium preferred |
| Whole Milk 🥛 | ½ cup | Warmed for creaminess |
| Yellow Onion 🧅 | 1 whole | Diced, medium size |
| Garlic Cloves 🧄 | 3 cloves | Minced, fresh preferred |
| Sea Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Freshly Ground Black Pepper 🌶️ | ½ tsp | Freshly cracked |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
The cheese trio is non-negotiable here—sharp white cheddar for tang, Gruyère for nutty depth, and cream cheese for that signature melt. Grab block cheeses at Whole Foods or your local deli and shred them yourself (pre-shredded gets clumpy). For the roux, don't rush the butter—cook it low and slow until it's golden but not browned. That's where all the flavor develops. The chicken broth should be low-sodium; if it's not, cut it with extra water. I always double-check the label because salty broth ruins everything.
No Gruyère? Parmigiano-Reggiano works too, but it's sharper. Cream cheese stuck in the back of the fridge? Warm it in the microwave for 20 seconds—it blends smoother. Short on time? Instant Pot this—sauté the roux, add everything else, and pressure cook for 8 minutes. The pasta cooks right in the broth, so no extra pot needed. For extra richness, stir in a splash of heavy cream at the end. The parsley is just for garnish—don't skip it, though. It brightens up the whole bowl.
This reheats beautifully—just add a splash of milk or broth to loosen it up. Keeps for 4-5 days in the fridge, freezes for 3 months. I always make a double batch because it disappears fast. Store in airtight containers with a layer of broth on top to keep it from drying out. The cheese sauce gets even better the next day as everything melds together. Portion into bowls and freeze—ready for lazy weeknights.
Why You'll Love This Recipe
- Pantry Magic: I swear by this recipe when I forget to grocery shop. Elbow macaroni, a block of sharp cheddar, and a handful of Gruyère? That’s all I need to pull together something that tastes like I planned it.
- Cheesy Obsession: The moment that rich roux hits your tongue—smooth, nutty Gruyère melting into the creamy broth—you’ll understand why I keep a stash of this cheese just for this soup. It’s the kind of flavor that lingers.
- Lunchbox Hero: Between us, this is my go-to for meal prep. The leftovers reheat like a dream, and the cheesy texture holds up perfectly in a thermos. Honestly, it’s the only soup my picky college-aged kid will eat cold from the fridge.
- Budget Comfort: A single bag of pasta, a few dollars’ worth of cheese, and butter you already have? This soup costs me less than takeout but feels like a hug in a bowl. Not the prettiest, but the taste makes up for it every time.
Step-by-step instructions for mac and cheese soup
Here's how to create a velvety, three-cheese mac and cheese soup that's rich, comforting, and packed with flavor.
Build the Creamy Roux Base
Melt the 0.5 cup unsalted butter in a large pot over medium heat. Once fully melted and foaming subsides, add the 0.5 cup all-purpose flour all at once, whisking constantly for 2-3 minutes. You're looking for a golden brown roux that smells nutty and toasty—this forms the flavor foundation of your soup.
This step is crucial because the roux thickens the broth and creates that signature creamy texture. If it darkens too quickly, reduce the heat slightly. Keep whisking until the mixture becomes smooth and paste-like, coating the back of a spoon.
Cook the Aromatics and Add Broth
Add the diced 1 whole yellow onion and minced 3 cloves garlic to the roux, stirring for 1-2 minutes until fragrant. Slowly whisk in the 4 cups chicken broth, ensuring no lumps form. Bring to a gentle simmer and let cook uncovered for 5 minutes to develop deeper flavors.
Here's where the magic happens—the broth begins to infuse with the roux, creating a silky base. You'll notice tiny bubbles forming along the edges and a gentle rolling motion in the pot. This is your signal that the foundation is ready for the cheeses.
Add Cheeses and Cook the Pasta
Reduce heat to low and gradually stir in the 2 cups sharp white cheddar cheese, 0.5 cup gruyère cheese, and 4 oz cream cheese until completely melted and smooth. Add the 8 oz elbow macaroni and 0.5 cup whole milk, stirring gently to coat the pasta in the creamy mixture.
Bring back to a simmer and cook for 12-15 minutes, stirring occasionally, until the pasta is tender and the soup reaches your desired consistency. You'll know it's ready when the pasta floats to the surface and the soup coats a spoon smoothly. If it's too thick, whisk in a splash of hot broth.
Season and Finish
Remove from heat and stir in the 1.5 tsp sea salt and 0.5 tsp freshly ground black pepper. Taste and adjust seasoning—this is where you can really customize the flavor to your preference. The soup should be rich but not overly salty, with a perfect balance of cheesy goodness.
Let the soup sit off heat for 5 minutes to thicken slightly, then stir in the 0.25 cup chopped fresh parsley. This final step brightens the dish and adds freshness to cut through the richness. Serve immediately with extra grated cheese on top if desired.
Pro Tips For Making Mac Soup
- Cook the Pasta Last: I used to add macaroni to the simmering roux, and it always ended up gummy. Elbow pasta needs 1-2 minutes in boiling salted water after the soup’s done—just enough to soften it while keeping the texture firm. Trust me, the difference is noticeable.
- Grate Cheese Fresh: Pre-shredded cheddar and Gruyère have anti-caking agents that turn soup greasy. Use a box grater or pulse in a food processor right before stirring it in—this keeps the cheese smooth and melts it into a velvety blanket instead of clumps.
- Bloom the Roux Slow: After melting butter, whisk in flour all at once and cook on medium-low for 5-6 minutes. Too much heat burns the flour before it thickens, leaving a bitter, grainy roux. Low and steady guarantees a smooth base for the cheese.
- Reserve Starchy Water: When draining pasta, save ½ cup of the starchy water. Stir a splash into the finished soup—it thins the sauce just enough to prevent a gluey texture while keeping the pasta clinging to the cheese. (Yes, even if you’re impatient like me.)
Pro cooking tips for great mac soup
Roux Perfection
The golden-brown roux is the flavor foundation of this soup, so don't rush it. Cook the 0.5 cup butter and 0.5 cup flour over medium heat for 2-3 minutes, whisking constantly until it smells nutty and coats the back of a spoon.
I learned this the hard way—once I burned the roux and had to start over. Keep the heat low enough that it doesn't darken too quickly, or you'll end up with a bitter taste. 🌡️
Cheese Melting Secrets
When adding the cheeses, do it gradually to prevent clumping. Start with the sharp cheddar and Gruyère, stirring until fully melted before adding the cream cheese. I like to cut the cream cheese into small cubes first so it blends in smoothly.
If your soup gets too thick, whisk in a splash of hot broth or milk—this keeps the texture creamy without watering it down. 🧀
Pasta Timing
Cook the pasta directly in the broth for 12-15 minutes—this ensures it absorbs all the flavor without turning mushy. Use a timer and stir occasionally to prevent sticking. If you're worried about overcooking, test a piece of pasta early.
The noodles should be tender but still have a slight bite. Overcooked pasta makes for a gummy soup, and nobody wants that. ⏰
Broth Development
Let the broth simmer uncovered for 5 minutes after adding it to the roux. This step may seem small, but it's where the flavors really meld together. You'll notice the aroma deepen and the broth take on a richer color.
Skipping this step means your soup will taste flat and one-dimensional. Trust me, it makes a difference. 💫
Season to Taste
After removing the soup from heat, always taste and adjust the seasoning. I usually add an extra pinch of salt and a crack of black pepper here. If the soup tastes too rich, a splash of milk or broth helps balance it.
The parsley at the end isn't just for looks—it brightens the whole dish and cuts through the richness. Don't skip it! 🌿
Resting Matters
Let the soup sit off the heat for 5 minutes before serving. This allows the flavors to settle and the sauce to thicken slightly. I've seen people skip this step, but it's a game-changer.
The cheese will melt more evenly, and the texture becomes even creamier. Patience pays off here—trust the process. ⏳
Nutrition facts
Frequently asked questions
Can I make this mac and cheese soup without a roux?
The roux is what creates that signature velvety texture, but you can make a simpler version by whisking the flour directly into the warm broth instead. Just be prepared for a slightly lighter, less rich result. For a quick fix, use 2 tablespoons cornstarch mixed with 2 tablespoons cold water as a slurry instead of a roux.
What's the best way to add protein to this soup?
For extra heartiness, try shredded rotisserie chicken or crispy bacon bits. Cook the chicken in the broth first, then remove it before adding the cheese. Bacon adds smoky depth—cook it separately and stir in at the end. You could also add diced ham or even white fish like cod for a seafood twist.
Why did my soup get grainy when I added the cheese?
This usually happens when cheese melts too quickly or when pre-shredded cheese (with anti-caking agents) is used. Always shred your own cheese and add it gradually over low heat. If it happens, whisk vigorously and add a splash of warm milk or broth to smooth it out. The key is patience—don't rush the melting process!
Can I make this soup dairy-free?
Swap the cheeses for nutritional yeast (for cheesy flavor) and cashew cream (blend soaked cashews with water). Use vegetable broth instead of chicken and ensure all ingredients are dairy-free. The texture will be different but still delicious. For extra richness, add a splash of coconut milk.
How do I prevent the pasta from turning mushy?
Cook the pasta directly in the broth for 12-15 minutes—no longer! Use a timer and stir occasionally. If you're worried, test a piece early. The noodles should be tender but still hold their shape. Overcooking releases too much starch, which makes the soup gluey. For extra insurance, use al dente pasta.
