diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp
index 5fc0aaf15a94a882bc063264a6ecba7cb33313ec..17f3ea7474d17b007013a347cef70e061bb01767 100644
--- a/Marlin/src/gcode/calibrate/G28.cpp
+++ b/Marlin/src/gcode/calibrate/G28.cpp
@@ -311,10 +311,12 @@ void GcodeSuite::G28(const bool always_home_all) {
         #else
           HOMEAXIS(Z);
         #endif
+
+        #if HOMING_Z_WITH_PROBE && Z_AFTER_PROBING
+          move_z_after_probing();
+        #endif
+
       } // home_all || homeZ
-      #if HOMING_Z_WITH_PROBE && Z_AFTER_PROBING
-        move_z_after_probing();
-      #endif
     #endif // Z_HOME_DIR < 0
 
     SYNC_PLAN_POSITION_KINEMATIC();