Heat a large pot over medium-high heat. Add bacon and cook until crispy, about 5 to 8 minutes. Remove to a paper towel lined plate.
Discard all but 2 tablespoons of the bacon fat. Add the onion, celery, carrots, and garlic to the bacon grease. Cook for 5 minutes until soft.
Add the beans and chicken broth. Stir to combine. Add the bay leaf.
Increase heat to high and bring the soup to a boil. Reduce heat to medium and simmer for 1 hour, stirring occasionally.
Remove the bay leaf from the soup, Transfer the soup to a blender, food processor, or grab your immersion blender. Carefully pulse the soup until your desired consistency is reached. (I like the beans broken down, but not completely smooth.)
Return the soup to the pot (unless you used your immersion blender) and add the tomato sauce. Stir to combine. Add 1/2 of the bacon back into the soup, and season with salt and pepper to taste.
Portion soup into serving bowls and garnish with remaining bacon. Serve immediately.
If you like your soups thicker, use 2 cups chicken broth. If you don't mind your soup on the runny side, use 3 cups broth.