Running back Corey Dillon ran for 108 yards on 18 carries for Cincinnati (6-5), which remained tied with Baltimore for first place in the AFC North.
The Bengals scored touchdowns on their first two drives on passes of five and four yards from Kitna to Johnson.
After San Diego climbed within 14-13, Kitna completed a pass to Johnson with 1:25 left in the first half.
San Diego's Doug Flutie threw an incomplete pass on 4th-and-5 at the Cincinnati 40 with 59 seconds left, and Kitna quickly made it 28-13 with 11 seconds to play.
The Chargers (2-9) rallied from a 31-13 deficit to climb within 34-27 on a six-yard run from LaDainian Tomlinson with 3:04 left.