Northamptonshire 117 and 300 for 7 (Keogh 101*, Azad 51) lead Kent 222 (Crawley 91, Tremain 5-44, White 4-57) by 195 runs
Keogh's unbeaten 101 helped the visitors to 300 for seven at stumps, a lead of 195, thwarting Kent's hopes of wrapping up a victory inside three days.
Hassan Azad was the next highest scorer with 51, while Gareth Berg was unbeaten on 49 when play was abandoned for the day due to bad light.
Daniel Bell-Drummond had Kent's best bowling figures with two for 42, but it was a frustrating day for the hosts, after bowlers had dominated on days one and two.
Conditions were cold and overcast when the visitors resumed on 47 for two in their second innings, still 58 behind, but a pitch that had previously misbehaved seemed to have flattened out and with Grant Stewart unable to bowl after picking up an injury, the visitors put together a succession of partnerships.
Azad and Luke Procter steadily eroded the lead and after 90 minutes of the morning session the latter pulled Quinn through square leg to reach his half-century and put Northamptonshire ahead, only to be out lbw to the next ball.
Procter then fell to Bell-Drummond's second ball, chipping it to square leg where he was caught by a sprinting Joe Denly, for 38.
Bell-Drummond then struck again to get Josh Cobb caught behind for 12, leaving Northamptonshire wobbling on 137 for five at lunch. At that point the lead was just 32, but Lewis McManus hung around for an hour of the afternoon session before he nicked Joey Evison behind for 14.
Keogh reverse-swept Jack Leaning for four to reach 50 and he put on 32 with James Sales before the latter nicked Leaning to Sam Billings for eight.