In a large mixing bowl, toss the halved tomatoes, quartered onion, and garlic cloves with olive oil, salt, and pepper until well coated.
Spread the vegetable mixture in a single layer on a baking sheet. Roast in the preheated oven for 25-30 minutes or until the tomatoes are caramelized and soft.
Remove the sheet from the oven and let it cool slightly.
In a large pot, combine the roasted vegetable mixture and vegetable broth. Bring to a gentle simmer over medium heat.
Add the fresh basil leaves and balsamic vinegar to the pot. Cook for an additional 5-10 minutes, allowing the flavors to meld together.
Using an immersion blender, blend the soup until smooth. If you prefer a chunkier texture, blend to your desired consistency.
Taste and adjust seasoning with salt, pepper, and optionally, red pepper flakes for a bit of heat.