Jesper Gronkjaer scored his first goal for Birmingham as they struggled past Lincoln into the third round.
Birmingham took until the 64th minute to break through when Gronkjaer took Darren Anderton's pass and drilled a low shot past Andy Marriott.
Clinton Morrison slotted home a second before Robbie Savage converted a penalty awarded for Paul Morgan's foul on Dwight Yorke.
Lincoln got a well-deserved consolation through Simon Yeo's penalty.
Birmingham: Maik Taylor, Melchiot (Dunn 84), Upson,
Martin Taylor, Gray, Anderton, Savage (Clapham 80), Clemence,
Gronkjaer, Heskey (Morrison 67), Yorke.
Subs Not Used: Vaesen, Izzet.
Goals: Gronkjaer 64, Morrison 77, Savage 80 pen.
Lincoln City: Marriott, Bloomer, Futcher, Morgan, McAuley,
Peat (Taylor-Fletcher 69), Gain, Butcher, Green (Toner 84),
Yeo, McCombe (Richardson 74).
Subs Not Used: Rayner, Sandwith.
Booked: McAuley, Futcher, Peat.
Goals: Yeo 84 pen.
Ref: E Evans (Manchester).