While there wasn't much between the two professionals, Nishikori was able to edge the match with a 6-7[1-7] 6-4 6-4.
The 47th-ranked player held his own in the initial stages of the match and took the opening set to a tie break. The Japanese pro failed to capitalise as the Frenchman took the tie break 6-1 for the set.
While the match remained close in the second set with each game going on serve, Nishikori claimed the first break of the contest which set him up to serve for the set.
Despite the advantage, Tsonga broke back straight away to level the second set at four games all. However, his 21-year-old opponent managed to break the Frenchman a second time to claim the set.
Nishikori refused to give up in the final set and was rewarded with a win and place in the third round of the tournament.
Nishikori will play Santiago Giraldo in the third round of the Shanghai Masters.