Cook bacon until crisp. Remove from pan, let cool and chop. Reserve 1 tablespoon of bacon grease to saute the onion and garlic until tender. Toss onion and garlic with chopped bacon and set aside.
In a large bowl, combine eggs, milk and seasonings and whisk to combine.
Place 4 cups of the bread cubes in the 9 x 13 pan and pour half of the egg mixture over top. Top with 1 cup cheese,½ of the onion mixture and half of the tomatoes. Repeat layers. Cover with foil and chill overnight.
Preheat oven to 325 degrees.
Remove foil and bake for 1 hour. Sprinkle remaining cheese over top and return to oven until the cheese melts and the center is set. Let stand for 5-10 minutes before serving.