Nicolas Almagro failed to reproduce the form that helped him end Rafa Nadal's 41-match, 11-year unbeaten run at the tournament as the Spaniard lost his semi-final 7-5 6-3 to unseeded Colombian Santiago Giraldo.
Nishikori will now fancy his chances of landing a first clay-court trophy in Sunday's final with Giraldo who has yet to win a title on the ATP Tour.
"I am very happy with the way I am playing and especially with my service and forehand," said the Japanese who is making his comeback after being sidelined for a month with a groin injury.
"This is a tough tournament with so many top Spanish players involved but now I am in the final and it is in my hands," he told reporters.
Nishikori's consistency from the back of the court was too much for Gulbis to handle.
The 24-year-old was quick around the court as he broke twice to take the first set.
Gulbis offered more resistance in the second set but Nishikori broke to go 5-4 ahead before clinching victory on his own serve.
ATP Barcelona semi-final results:
Santiago Giraldo (Colombia) beat 6-Nicolas Almagro (Spain) 7-5 6-3
4-Kei Nishikori (Japan) beat 9-Ernests Gulbis (Latvia) 6-2 6-4
ATP Bucharest semi-final results:
1-Grigor Dimitrov (Bulgaria) beat 3-Gael Monfils (France) 5-1 (Monfils retired)
Lukas Rosol (Czech Republic) beat Robin Haase (Netherlands) 3-6 6-3 6-2
- Sports & Recreation
- Santiago Giraldo
- Nicolas Almagro