The second seed had to come from a set down to win the contest and took over three hours to do so.
With no breaks of serve in the first set, Kohlschreiber took a 5-2 advantage in the tie-break and did not have to look back to win it.
However, the 29-year-old German player failed to maintain the momentum in the second and third sets, and committed mistakes on key occasions to allow Nadal to storm back into the match.
Nadal rushed into a 5-0 lead in the fourth set, and although Kohlschreiber briefly looked like making a comeback, the 27-year-old Spaniard's flow could not be deterred.
Nadal will now take on his compatriot Tommy Robredo for a place in the semi-finals.