Start by boiling the macaroni in salted water until al dente. I always make sure not to overcook it since it will cook slightly more later. Drain the pasta and set it aside while preparing the sauce.
In a saucepan, melt butter and sauté minced garlic until fragrant. Then add the chopped spinach and cook until wilted. This step brings out the natural flavor and removes excess moisture.
Stir in the chopped artichoke hearts with the spinach mixture. Let everything cook together for a minute so the flavors blend well. This creates that signature spinach-artichoke base.
Sprinkle flour into the pan and stir to form a roux. Slowly add milk while whisking to avoid lumps. Let it thicken before adding cream cheese for a rich and smooth texture.
Mix in mozzarella and parmesan cheese gradually. Stir until fully melted and creamy. The sauce should be thick, smooth, and packed with cheesy goodness.
Add the cooked macaroni into the sauce and mix well. Make sure every piece of pasta is coated evenly. This is where everything comes together beautifully.
Add salt, pepper, and optional red pepper flakes. Taste and adjust seasoning if needed. Serve warm for the best creamy texture.