Heat oil in a soup pot over medium-low heat. Cook onion for 8 minutes until soft without browning, then stir in sliced garlic for 1 minute.
Add hand-crushed tomatoes with their juices, broth, salt and pepper. Bring to a gentle simmer and cook uncovered for 15 minutes, stirring occasionally.
Stir in torn bread and simmer over low heat for 8 to 10 minutes, stirring and pressing with a wooden spoon until the bread is fully softened and mostly broken into the broth.
Remove from the heat and stir in chopped basil and vinegar. Let stand for 5 minutes, stir again to distribute the softened bread and divide among 6 bowls.