The Romanian, winner of last week's Indian Wells title, was stunned in the second set by the 25-year-old Vaidisova, who retired in 2010 but is now making a return to the WTA.
Halep was broken while serving for a three-set win at 5-0, but broke back two games later to secure victory in 92 minutes with 17 winners and 27 unforced errors.