clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon
Easy Creamy Tomato Soup

Easy Homemade Creamy Tomato Soup

  • Author: Melissa
  • Total Time: 30 minutes
  • Yield: 8 Servings 1x


This homemade Creamy Tomato Soup is warm and comforting. Made with staple ingredients like tomato sauce, milk, butter, and seasoning,  it’s perfect for a cozy and satisfying meal.


Units Scale
  • 4 tablespoons butter
  • 1 small onion, finely diced
  • 4 tablespoons all-purpose flour (for gluten-free, use a gluten-free flour blend)
  • 4 cups whole milk
  • 1/4 teaspoon baking soda
  • 1/2 teaspoon dried thyme
  • 1 tablespoon brown sugar
  • 2 (15-ounce) cans of tomato sauce
  • Salt and ground black pepper
  • *See recipe notes for gluten-free and dairy-free options


  1. Heat butter in a large pot over medium heat. Add the diced onion and cook while stirring for 6-7 minutes, or until the onions are translucent and lightly golden brown.
  2. Whisk the flour into the butter and onions. Cook while stirring for 1 minute. Be sure to smooth out any lumps of flour.
  3. Gradually stir milk into the flour mixture until smooth and fully combined. Add baking soda, dried thyme, brown sugar, and tomato sauce.
  4. Heat soup over medium-low to medium until gently simmering (you don’t need to boil). Simmer, stirring occasionally for 8-10 minutes, or until the soup is thickened.
  5. Remove from the heat. Taste and adjust seasonings to your liking. (Taste carefully – the soup will be very hot!)
  6. Serve immediately and enjoy!


For a dairy-free creamy tomato soup, use oil or plant butter in place of dairy butter. You’ll also need to substitute dairy milk with the plant-based milk of your choice (almond, cashew, oat, etc.)

For a gluten-free tomato soup, use a gluten-free all-purpose flour blend in place of regular all-purpose flour.

  • Prep Time: 10 minutes
  • Cook Time: 20 minutes