Finding a good chili recipe that uses fresh tomatoes instead of canned ones can be tricky. Between picking the right tomatoes at the store and figuring out how to get that perfect consistency, it’s no wonder many home cooks stick to the canned variety for their go-to chili recipes.
That’s why I’m excited to share this homemade chili recipe that makes the most of fresh, in-season tomatoes while keeping things simple and straightforward. It’s perfect for weekend cooking, and even better as leftovers during the busy work week.

Why You’ll Love This Chili
- Fresh ingredients – Using fresh Roma tomatoes instead of canned ones gives this chili a naturally sweet, garden-fresh taste that makes a noticeable difference in the final flavor.
- Customizable recipe – You can easily adjust the spice level, choose your favorite beans, and pick your own toppings to make it exactly how you like it.
- Perfect for meal prep – This big batch recipe makes enough to feed a crowd or store for later, and it actually tastes even better the next day as the flavors continue to develop.
- Hearty and filling – With lean ground beef, beans, and fresh vegetables, this chili is packed with protein and fiber to keep you satisfied for hours.
What Kind of Tomatoes Should I Use?
Roma tomatoes are the perfect choice for chili since they’re meatier and contain less water than regular round tomatoes. While the recipe calls for Romas, you could also use other paste tomatoes like San Marzano or Amish Paste varieties – they’ll all give you that thick, rich texture you want in a good chili. When picking your tomatoes, look for ones that are deep red in color and feel firm but slightly soft when gently squeezed. If you can’t find good fresh tomatoes, you can substitute with canned whole peeled tomatoes, just be sure to drain off some of the liquid first to keep your chili from becoming too soupy.

Options for Substitutions
This chili recipe is pretty flexible and you can make several swaps based on what you have in your kitchen:
- Roma tomatoes: If fresh Roma tomatoes aren’t available, you can use 4 (14 oz) cans of diced tomatoes. Just drain them first to avoid making your chili too watery.
- Ground beef: Feel free to swap the ground beef with ground turkey for a lighter version, or try ground pork for a different flavor. You could even use a mix of meats!
- Beans: Any beans work great in this recipe – kidney beans, black beans, pinto beans, or even white beans. Mix and match to your liking.
- Beef broth: Chicken or vegetable broth can work instead of beef broth. If using water, add an extra tablespoon of chili powder to maintain flavor depth.
- Olive oil: Any neutral cooking oil like canola or vegetable oil works fine here.
- Toppings: The garnishes are totally up to you – try diced avocado, crushed tortilla chips, lime wedges, or fresh cilantro instead of or in addition to the suggested toppings.
Watch Out for These Mistakes While Cooking
The biggest mistake when making chili with fresh tomatoes is not cooking them down enough – raw tomatoes contain a lot of water that needs to be simmered away to achieve that rich, thick consistency we love in chili. To get the most flavor from your ground beef, another common error to avoid is overcrowding the pot – cook the meat in batches if necessary, ensuring each portion gets nicely browned rather than steamed. A third crucial mistake is rushing the cooking process – this chili needs at least 2-3 hours of slow simmering to allow the flavors to develop and the tomatoes to break down properly. For the best results, taste and adjust your seasonings gradually throughout cooking rather than all at once at the beginning, and remember that beans should be added in the last 30 minutes to prevent them from becoming mushy.

What to Serve With Chili?
This hearty chili is practically a meal on its own, but there are so many tasty sides that make it even better! A warm piece of cornbread or some tortilla chips are perfect for scooping up every last bite. For a fresh contrast to the rich chili, try a simple green salad with ranch dressing or some crisp coleslaw on the side. If you’re feeding a crowd, setting up a toppings bar with extra cheese, diced onions, jalapeños, and lime wedges lets everyone customize their bowl just the way they like it.
Storage Instructions
Keep Fresh: This hearty chili tastes even better the next day! Pop it in an airtight container and keep it in the fridge for up to 5 days. The flavors will continue to meld together, making each bowl more delicious than the last.
Freeze: Chili is perfect for freezing! Let it cool completely, then portion it into freezer-safe containers or bags. It’ll stay good in the freezer for up to 3 months. I like to freeze it in individual portions for easy weeknight dinners.
Reheat: To warm up your chili, simply heat it in a pot over medium-low heat, stirring occasionally. You can also microwave it in 1-minute intervals, stirring between each. If it seems a bit thick after storage, just add a splash of beef broth to reach your desired consistency.
Make Ahead: This chili is great for meal prep! You can make it a day or two before a party or busy week. Just store it in the fridge and reheat when needed. Remember to add fresh garnishes like green onions, cheese, and sour cream just before serving.
| Preparation Time | 20-30 minutes |
| Cooking Time | 90-120 minutes |
| Total Time | 110-150 minutes |
| Level of Difficulty | Medium |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 2800-3000
- Protein: 180-200 g
- Fat: 150-170 g
- Carbohydrates: 200-220 g
Ingredients
For the chili base:
- 3 cups beef broth (low sodium preferred)
- 31 oz canned red beans (rinsed and drained)
- 1 tbsp minced garlic (freshly minced for best aroma)
- 2 yellow onions (finely diced)
- 2 lbs ground beef (90% lean, browned and drained)
- 1.5 tsp kosher salt (or to taste)
- 2 tbsp cumin (ground)
- 5 lbs Roma tomatoes (ripe, for best flavor)
- 2 tbsp chili powder
- 1/4 cup olive oil (I use California Olive Ranch extra virgin)
For the garnish:
- cheddar cheese (shredded, sharp preferred)
- sour cream (full-fat for richness)
- green onions (sliced thin)
Step 1: Prepare the Fresh Tomato Sauce
Begin by dicing 5 lbs of Roma tomatoes.
To do this, cut off the tops, slice them in half, and then chop them into small pieces.
Add the diced tomatoes to a large saucepan over medium heat and cook for 30 minutes, stirring occasionally.
Once it begins to boil, reduce the heat to a simmer to develop the homemade tomato sauce.
Step 2: Sauté the Aromatics
In a separate large pot, heat ¼ cup of olive oil over medium heat.
Add 2 chopped yellow onions to the pot and cook until they become translucent.
Stir in 1 tablespoon of minced garlic, sautéing for 30 to 60 seconds or until the garlic becomes fragrant without burning.
Step 3: Cook the Ground Beef
Add 2 lbs of 90% lean ground beef to the pot with the onions and garlic.
Mix the beef into the vegetables as it cooks, ensuring it is broken down into small pieces.
Season with 2 tablespoons of chili powder, 2 tablespoons of cumin, and 1½ to 2 teaspoons of kosher salt, adjusting the salt to your taste.
Step 4: Combine Ingredients
Once the ground beef is cooked through, pour in 3 cups of beef broth (or bone broth for extra health benefits).
Add 31 oz (or 2 cans) of your choice of beans, such as red beans, kidney beans, or black beans.
Stir in the fresh homemade tomato sauce from the saucepan into the chili mixture and mix everything together well.
Step 5: Simmer the Chili
Bring the chili to a simmer.
If you prefer a thicker chili consistency, reduce the temperature and let it simmer gently for 1 to 2 hours, allowing the flavors to meld and deepen.
Step 6: Serve and Garnish
Serve the warm chili in bowls and garnish with your favorite toppings, such as green onions, cheddar cheese, or a dollop of sour cream.
Enjoy your hearty, flavorful chili!