Bring a large pot of salted water to a boil for the pasta—this takes about 10 minutes, so start it first. While the water heats, mince the garlic cloves finely and grate the parmesan cheese fresh (this ensures it melts smoothly into the sauce rather than clumping). Measure out the chicken stock, half and half, lemon juice, and all dry seasonings into separate small bowls or ramekins for easy access during cooking. Having everything prepped and ready is essential since the sauce comes together quickly once you start cooking.
Once the water reaches a rolling boil, add the ziti pasta and cook according to package directions, stirring occasionally to prevent sticking. Start tasting for doneness a minute or two before the recommended time—I always use Barilla because it reaches that perfect al dente texture consistently. Drain the pasta in a colander but do not rinse it; the starch on the surface helps the sauce cling to the noodles. Set the drained pasta aside in a large bowl.
In a large skillet or saucepan, melt the butter over medium heat for about 2 minutes until it's completely melted and foaming slightly. Add the minced garlic and cook for 30-45 seconds, stirring constantly, until fragrant but not browned—overcooked garlic turns bitter and ruins the delicate flavor of the sauce. Sprinkle the flour over the butter and garlic mixture, stirring constantly for 2 minutes to create a light roux; this thickens the sauce and adds a subtle richness.
Slowly pour in the chicken stock while whisking constantly to prevent lumps from forming in the roux. Once the stock is fully incorporated and smooth, gradually add the half and half, whisking continuously. Simmer the mixture over medium heat for 2-3 minutes, stirring occasionally, until it begins to thicken slightly and coats the back of a spoon.
Reduce the heat to low and stir in all the seasoning mixture from Step 1 along with the lemon juice. The lemon juice brightens the sauce and prevents it from tasting too heavy. I like to add a pinch of extra salt at this point to give the sauce more depth and bring out all the flavors. Taste the sauce and adjust seasonings to your preference—the sauce should be well-seasoned since it will coat the pasta.
Keep the heat on low and stir in the freshly grated parmesan cheese, mixing until it's completely melted and the sauce is smooth and creamy. Add the spinach and stir until it's fully wilted into the sauce, about 1-2 minutes. The residual heat will wilt the spinach without overcooking it, keeping it vibrant and tender.
Pour the sauce from Step 6 over the cooked pasta in the bowl and toss gently but thoroughly until every strand of pasta is coated with the creamy sauce. If the sauce seems too thick, you can add a splash of the pasta cooking water to loosen it slightly. Divide into serving bowls and serve immediately while the dish is hot and the flavors are at their peak.