Fognini, who won the Croatia Open last year, has been in excellent form throughout the tournament and looked the more assured of the two from the start.
By contrast Nishikori, who has been struggling with a knee injury, looked off his game.
Nishikori will now drop out of the top five and will move down to seventh in the world in the new rankings on Monday.
Fognini will play in just his second Masters semi-final and he will face the winner of the match between Rafael Nadal and Jack Sock.
The Italian's semi-final place means for the first time in a decade there will be an unseeded men's semi-finalist.
Read the original article on Eurosport: Fognini shocks Nishikori to reach Miami semi-finals