Heat the olive oil in a large saucepan over medium heat. Add the onion, garlic, and carrot and cook about 5 minutes, until the onion and carrot have softened.
Add in the tomatoes, tomato paste, and vegetable stock. Simmer until the tomato is soft and easily breaks apart, about 25-20 minutes. Add some additional vegetable stock or water if the soup becomes too thick.
Garnish with more basil leaves, sour cream, or Greek yogurt if desired.
Video
Notes
Make sure the tomatoes are ripe. Using tomatoes that are not quite ripe will not produce the same taste.
You can use 2 large cans of canned tomatoes but you may need some extra cooking time for the flavors to release. Adding about a tablespoon of brown sugar will help to speed that process.
If you don't have an immersion blender, you can use a regular high speed blender. Just be very careful to not overfill - you may have to blend in batches and then recombine everything back in the saucepan.
This homemade tomato soup freezes very well. Freeze it in individual portions for a quick, comforting warm-up whenever needed!