Heat olive oil in a large saucepan set over medium heat.
Add the onion and cook, stirring occasionally, until the onion just starts to soften, about 5 minutes.
Add the garlic, carrots, celery, thyme, dried chile flakes and salt. Cook until the vegetables are tender, about 5 minutes.
Stir in the tomato paste and cook for one additional minute.
Stir in the butternut squash, cauliflower, vegetable broth, water and bay leaves. Bring to a boil, then reduce to a simmer, partially cover the saucepan and cook until the squash and cauliflower are tender, 15 to 20 minutes.
Let the soup cool for 10 minutes, then transfer 3 cups of the soup to a blender. Puree until almost smooth, then stir the mixture back into the soup.
Stir in the parsley, add salt and pepper (if desired) and serve.