Preheat the oven to 350°F and line a large baking sheet with parchment paper. Place the tomatoes cut-side up on the baking sheet, drizzle with 2 tablespoons of the olive oil, and sprinkle with salt and pepper. Roast for 1 hour or until the edges just start to shrivel and the insides are still juicy.
Heat the remaining 2 tablespoons of olive oil in a large pot over medium heat. Add the onions, carrots, garlic, and ½ teaspoon salt and cook until soft, about 8 minutes. Stir in the tomatoes, vegetable broth, vinegar, and thyme leaves and simmer for 20 minutes.
Let cool slightly and pour the soup into a blender, working in batches if necessary. Blend until smooth. Add the basil and pulse until combined.
Garnish the soup with basil leaves and serve with crusty bread.