Kavcic won more points than Fognini and had four opportunities to win the match but couldn't close it out.
The 90th-ranked Slovenian wasted four match points at 5-3 in the second set and served for victory again at 5-4 in the deciding set. The seventh-seeded Fognini needed only one match point to complete the comeback.
Fognini will play Montanes, who defeated Filippo Volandri of Italy 6-1, 6-4.
Simon converted his only two break points to win his second-round match. The Frenchman was playing his first match since a neck injury last month forced him to retire from a quarterfinal match against Roger Federer in Miami.