Teaming up with Kristina Mladenovic for the first time in two years in the Fed Cup, Garcia sealed victory on her first match point as the French pair rallied to beat Halep and Monica Niculescu 5-7, 6-3, 6-4 on clay at the Kindarena in Rouen, northwest France.
France has won the Fed Cup twice while Romania, which beat defending champion Czech Republic in the last eight, was looking to reach its first final.
Instead, the French will play Australia, which beat Belarus and will host the Nov. 9-10 final.
In a grueling contest, Halep and Garcia both spent 5 ½ hours on court after playing each other earlier Sunday in reverse singles.
The second-ranked Halep, the reigning French Open champion, beat the No. 21-ranked Garcia 6-7 (6), 6-3, 6-4 to put Romania ahead 2-1
With France trailing, captain Julien Benneteau replaced Mladenovic with veteran Pauline Parmentier for the second reverse singles. She responded with a 6-3, 2-6, 6-2 victory against Irina-Camelia Begu to set up the decisive doubles.
In another team switch, this time on Romania's side, Halep took Begu's place alongside doubles specialist Niculescu.
In Saturday's opening singles, Garcia had beaten Mihaela Buzarnescu 6-3, 6-3 to draw France level after Halep won 6-3, 6-1 against Mladenovic.
The Australians advanced to the final for the first time since 1993, beating Belarus 3-2 on hard courts at the Pat Rafter Arena in Brisbane.
More AP tennis coverage: https://apnews.com/apf-Tennis and https://twitter.com/AP_Sports
Copyright 2019 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.