Heat a large pot over medium-low heat. Add the olive oil and when it's warm enough to slide easily across the pan, add the onions, carrots, salt and pepper. Cook until very tender and only lightly golden, stirring occasionally, about 15 minutes.
Turn up the heat to medium-high. Add the garlic, tomato paste, basil and red pepper. Cook for about 1-2 minutes until the garlic is fragrant and the tomato paste gets slightly darker.
Add the tomatoes and 3 cups of the stock and bring to a boil. Reduce the heat until the soup is just simmering and let it cook for about 10 minutes allowing the flavors to meld.
At this point you can turn off the heat and let the soup cool a bit before blending or you can add the hot soup in two batches to a high speed blender. Carefully blend until smooth. If more liquid is needed, add a bit more stock.
I often serve straight from my blender but you can also return the soup to the pot and keep warm. Either way, be sure to taste for seasoning. More salt is often needed but it depends on how salty your broth is. Serve with a pinch of flaky salt, if desired.