Sauté the aromatics. Heat the olive oil in a large, deep skillet or Dutch oven over medium heat. Add onion with a pinch of salt and cook 4–5 minutes until translucent. Stir in garlic and red pepper flakes and cook 30 seconds until fragrant.
Toast the spices. Sprinkle in Italian seasoning (or oregano and basil).
Stir for 20 seconds to bloom the herbs and deepen their flavor.
Add liquids and pasta. Pour in the broth and crushed tomatoes. Stir, then add the penne. Make sure the pasta is submerged.
Bring to a lively simmer.
Simmer and stir. Cook uncovered, stirring every couple of minutes to prevent sticking. Adjust heat to maintain a steady simmer. This takes about 10–12 minutes, depending on your pasta.
If the pot looks dry before the penne is al dente, splash in more broth or water.
Check doneness. Taste a piece of penne. You want it just tender with a slight bite. The sauce should be saucy but not soupy and will thicken more as it stands.
Stir in ricotta. Reduce heat to low.
Dollop in the ricotta and fold gently until it melts into the sauce. Don’t boil after adding dairy to avoid curdling.
Wilt the spinach. Add the spinach in handfuls, stirring until it just wilts. This happens fast—about 1–2 minutes.
Finish with Parmesan and lemon. Stir in Parmesan, lemon zest, and a squeeze of lemon juice.
Taste and adjust salt and pepper. If it’s too thick, loosen with a splash of warm water or broth.
Serve and garnish. Spoon into bowls and top with extra Parmesan and chopped basil or parsley. Serve hot.