Christian Ribeiro saw an effort blocked for Exeter in the first half before Lee Molyneux fired an ambitious effort from around 35 yards wide on the half-hour mark.
Molyneux went closer two minutes later but this time his on-target attempt was well saved by Exeter goalkeeper James Hamon.
Nichols then gave the home side the lead when he headed home Ryan Hartley's cross on 34 minutes.
Sean Maguire nearly equalised with a header a minute into the second period before Tom Aldred fired over the bar.
Accrington had their leveller on 67 minutes when McCarten headed home Molyneux's delivery to make their sustained period of pressure count.
The visitors almost took the lead with 10 minutes remaining but Andew Proctor's header was well saved by Hamon but it was Aldred who eventually claimed the winner late on.