Heat olive oil in a large pot or Dutch oven over medium heat. Add the onion and cook until softened and translucent, about 5–7 minutes. Season with salt, pepper and red pepper flakes. Add the garlic and sauté for another minute until fragrant.
Stir in the diced tomatoes, heavy cream, uncooked pasta, and chicken broth. Make sure the pasta is fully submerged in the liquid. Cover and cook over medium-high heat for about 10 minutes, stirring occasionally, until the pasta is tender and most of the liquid has reduced.
Stir in the shrimp and continue cooking over medium-high heat for 2–4 minutes, until the shrimp turn pink and are cooked through.
Remove the pot from the heat. Stir in the baby spinach, Parmesan cheese, and fresh basil until the spinach is wilted and everything is creamy and combined.
Dish up big bowls and enjoy your one-pot dinner with some crusty bread on the side!