diff --git a/homeassistant/components/skybell/config_flow.py b/homeassistant/components/skybell/config_flow.py
index 385f3dc39d7f0321be10e85a265828f06a39b2e0..a32441f4cf8891c3dd97663e2db975153d778ed5 100644
--- a/homeassistant/components/skybell/config_flow.py
+++ b/homeassistant/components/skybell/config_flow.py
@@ -34,16 +34,11 @@ class SkybellFlowHandler(ConfigFlow, domain=DOMAIN):
         errors = {}
         if user_input:
             password = user_input[CONF_PASSWORD]
-            entry_id = self.context["entry_id"]
-            if entry := self.hass.config_entries.async_get_entry(entry_id):
-                _, error = await self._async_validate_input(self.reauth_email, password)
-                if error is None:
-                    self.hass.config_entries.async_update_entry(
-                        entry,
-                        data=entry.data | user_input,
-                    )
-                    await self.hass.config_entries.async_reload(entry.entry_id)
-                    return self.async_abort(reason="reauth_successful")
+            _, error = await self._async_validate_input(self.reauth_email, password)
+            if error is None:
+                return self.async_update_reload_and_abort(
+                    self._get_reauth_entry(), data_updates=user_input
+                )
 
             errors["base"] = error
         return self.async_show_form(