Heat bacon in a 6 qt saucepan over medium-high heat. Cook until fat is rendered and bacon is crisp, about 10 minutes. Using a slotted spoon, transfer bacon to a bowl and set aside.
Add sausage to pan. Cook until browned (4-5 minutes), then using a slotted spoon, transfer to bowl with bacon.
Drain and discard all but 3 tbsp fat from pan and add onions. Cook, stirring occasionally, until slightly caramelized (10–12 minutes). Add garlic and cook 1-2 minutes more.
Add tomatoes, salt, pepper, and 2 cups water and bring to a boil. Reduce heat to medium-low. Cook, uncovered, until soup is slightly thickened, about 1 hour. Remove from heat and let cool slightly. (May be cooled completely, refrigerated and made later at this point).
Working in batches, puree soup in a blender until smooth. Transfer to a very large high-sided skillet and bring to a simmer over medium heat.
Working with 1 egg at a time, crack eggs into a small bowl and carefully slide into soup. Using a spoon, baste eggs with soup, until whites are firm and yolks are just set, about 5 minutes.
Divide bread slices between serving bowls and using a slotted spoon, place eggs over bread; ladle soup over the top. Garnish with reserved bacon and sausage.