diff --git a/Marlin/src/gcode/calibrate/G34.cpp b/Marlin/src/gcode/calibrate/G34.cpp
index fd876d3fe9ea..0ca4490eb6c1 100644
--- a/Marlin/src/gcode/calibrate/G34.cpp
+++ b/Marlin/src/gcode/calibrate/G34.cpp
@@ -38,7 +38,8 @@
 
 void GcodeSuite::G34() {
 
-  if (homing_needed()) return;
+  // Home before the alignment procedure
+  if (!all_axes_known()) home_all_axes();
 
   SET_SOFT_ENDSTOP_LOOSE(true);
   TEMPORARY_BED_LEVELING_STATE(false);