City, who have now gone seven league games without a win, should have taken the lead after five minutes but Chris Herd’s header came back off a post and Delroy Facey shot the rebound wide.
The hosts suffered a blow when striker Jamie Clarke, who scored twice in the FA Cup win at Northwich Victoria at the weekend, limped off after only 12 minutes. However, his replacement Chris Fagan almost immediately struck a post with a long-range effort.
Vale went ahead five minutes before the break when a mistake let in Richards for an easy goal. But Lincoln levelled in the opening minute of the second half thanks to a howler from Vale keeper Chris Martin, who fumbled a long throw from Eric Lichaj into his own net.
Richards set-up Dodds for a tidy finish from inside the box just before the hour mark and it proved to be decisive.
Lincoln missed more chances with Facey the biggest culprit when he somehow headed wide from five yards out.