Puerto Rico jumped out to a 4-0 lead and held on to upset the United States 4-3 to reach the semi-finals of the World Baseball Classic and eliminate the heavily favored losers in Miami on Friday.

A brilliant starting performance by major league journeyman Nelson Figueroa held Team USA down for six scoreless innings. The Americans chipped away at the Puerto Rican bullpen with a run in the seventh and two more in the eighth but fell short.

J.C. Romero, who pitched 14 seasons in the major leagues, retired the U.S. team in order in the bottom of the ninth to clinch the win, raising his arms to the heavens after center-fielder Angel Pagan caught Jimmy Rollins' fly ball to end it.

Romero was tackled to the ground by team mates and was buried under a celebration pile as Puerto Rico reached the final round of the elite, 16-team tournament for the first time.

"This is a dream," said third baseman Andy Gonzalez, who drove in two runs with a two-out, bases-loaded double in the sixth inning off reliever Vinnie Pestano that made it 4-0.

"I bet you the whole island is going crazy right now."

Figueroa, who pitched nine major league seasons for six different teams, did not allow a hit for the first three innings and yielded just two hits in six innings for the win.

"Just throw strikes, get ahead of hitters and have faith in Yady," said 38-year-old Figueroa, who pitched with precision and guile and gave much of the credit to his catcher, Yadier Molina.

"We had a plan from the beginning. We stuck to that plan, attacking the hitters," he said. "The second time around they were more aggressive and helped me out with my pitch count and that allowed me to go through six innings and help this team."

The win, which avenged a 7-1 loss to the U.S. on Tuesday, improved Puerto Rico's mark to 4-2 in the 16-team competition and gave them the last spot for the final round in San Francisco, joining defending champions Japan, the Netherlands and Dominican Republic.

The semi-finals are on Sunday and Monday with the title game on Tuesday. Puerto Rico will play the Dominican Republic on Saturday in Miami to determine the seeding from Pool 2 before heading to the West Coast.

Clutch-hitting Puerto Rico scored all their runs with two outs, tallying one in the first on a single by Mike Aviles and adding three in the sixth on a bases-loaded walk by Pestano and Gonzalez's two-run double off the wall in left.

The Americans got a strong start from Ryan Vogelsong but continued their struggles at the plate.

Until they scored in the seventh on an RBI single by Giancarlo Stanton, the U.S. had gone through a scoreless drought of 14 innings dating back to the first frame of their 3-1 loss to the Dominicans on Thursday.

Ryan Braun's double over third base in the eighth made it 4-2 and a bases-loaded walk to Ben Zobrist brought the U.S. within a run. But Romero came on to retire Eric Hosmer on a grounder and then set the Americans down in the ninth to end it.

"We always expect to win, but we never take winning for granted," said U.S. manager Joe Torre, giving credit to Puerto Rico.

Figueroa underlined the importance of his catcher's leadership. "Yady is the heart and soul of this team, he drives us all. He pushes to get the best out of you, and tonight he got the best out of me."