Heat olive oil and butter in a large pot over medium heat. Add diced onion and cook until soft and translucent.
Stir in minced garlic, Italian seasoning, and crushed red pepper flakes; cook until fragrant.
Add chicken pieces and sauté until lightly golden on the outside.
Pour in crushed tomatoes and chicken broth. Bring to a gentle boil, then reduce heat and simmer for about 20 minutes until chicken is cooked and flavors meld.
Stir in pasta and cook until al dente, about 8–10 minutes.
Reduce heat to low and pour in heavy cream. Stir gently, then add mozzarella and Parmesan, mixing until melted and creamy.
Season with salt and black pepper to taste. Adjust consistency with a splash of broth if needed.
Garnish with fresh basil or parsley before serving hot.