diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 271fda4d3e9ec1d874385e9aaa8236a1174ab9b4..953a88fdc975e7fb138c3eb630e2190d4cfaa262 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -2104,7 +2104,10 @@ static void clean_up_after_endstop_or_probe_move() {
 
     float old_feedrate = feedrate;
 
-    // Raise by z_raise, then move the Z probe to the given XY
+    // Ensure a minimum height before moving the probe
+    do_probe_raise(Z_RAISE_BETWEEN_PROBINGS);
+
+    // Move to the XY where we shall probe
     #if ENABLED(DEBUG_LEVELING_FEATURE)
       if (DEBUGGING(LEVELING)) {
         SERIAL_ECHOPAIR("> do_blocking_move_to_xy(", x - (X_PROBE_OFFSET_FROM_EXTRUDER));
@@ -2112,7 +2115,6 @@ static void clean_up_after_endstop_or_probe_move() {
         SERIAL_ECHOLNPGM(")");
       }
     #endif
-
     feedrate = XY_PROBE_FEEDRATE;
     do_blocking_move_to_xy(x - (X_PROBE_OFFSET_FROM_EXTRUDER), y - (Y_PROBE_OFFSET_FROM_EXTRUDER));