diff --git a/homeassistant/helpers/condition.py b/homeassistant/helpers/condition.py
index 126513608c7fd898d1fff307f91c8a433a46817b..da4fdab07d79e780a9c64818e5da9b8446830f44 100644
--- a/homeassistant/helpers/condition.py
+++ b/homeassistant/helpers/condition.py
@@ -475,8 +475,7 @@ def async_template(
     try:
         value: str = value_template.async_render(variables, parse_result=False)
     except TemplateError as ex:
-        _LOGGER.error("Error during template condition: %s", ex)
-        return False
+        raise ConditionError(f"Error in 'template' condition: {ex}") from ex
 
     return value.lower() == "true"
 
diff --git a/tests/helpers/test_condition.py b/tests/helpers/test_condition.py
index 485c51a8bb7b436228406f7dcad299de9000870a..dd1abdecb72110578d24e2d0cadaeef130b63685 100644
--- a/tests/helpers/test_condition.py
+++ b/tests/helpers/test_condition.py
@@ -1,5 +1,5 @@
 """Test the condition helper."""
-from logging import ERROR, WARNING
+from logging import WARNING
 from unittest.mock import patch
 
 import pytest
@@ -1041,19 +1041,14 @@ async def test_extract_devices():
     )
 
 
-async def test_condition_template_error(hass, caplog):
+async def test_condition_template_error(hass):
     """Test invalid template."""
-    caplog.set_level(ERROR)
-
     test = await condition.async_from_config(
         hass, {"condition": "template", "value_template": "{{ undefined.state }}"}
     )
 
-    assert not test(hass)
-    assert len(caplog.records) == 1
-    assert caplog.records[0].message.startswith(
-        "Error during template condition: UndefinedError:"
-    )
+    with pytest.raises(ConditionError, match="template"):
+        test(hass)
 
 
 async def test_condition_template_invalid_results(hass):