diff --git a/builtin/providers/vsphere/resource_vsphere_virtual_machine.go b/builtin/providers/vsphere/resource_vsphere_virtual_machine.go
index f48ece2bb9cf..816385867277 100644
--- a/builtin/providers/vsphere/resource_vsphere_virtual_machine.go
+++ b/builtin/providers/vsphere/resource_vsphere_virtual_machine.go
@@ -2110,7 +2110,14 @@ func (vm *virtualMachine) setupVirtualMachine(c *govmomi.Client) error {
 	}
 
 	if vm.hasBootableVmdk || vm.template != "" {
-		newVM.PowerOn(context.TODO())
+		t, err := newVM.PowerOn(context.TODO())
+		if err != nil {
+			return err
+		}
+		_, err = t.WaitForResult(context.TODO(), nil)
+		if err != nil {
+			return err
+		}
 		err = newVM.WaitForPowerState(context.TODO(), types.VirtualMachinePowerStatePoweredOn)
 		if err != nil {
 			return err