The Steelers (6-3) went on to their fourth consecutive victory. Shaun Suisham kicked a 23-yard field goal 51 seconds into the extra period, one play after Lawrence Timmons intercepted Kansas City's Matt Cassel and returned it to the 5.
Jamaal Charles ran for 100 yards and a score for the Chiefs (1-8), who have lost six straight.
The Chiefs rallied in spite of themselves in the final 2 minutes. Cassel led Kansas City 52 yards converting a 4th-and-15 in the process to set up a 46-yard field goal by Ryan Succop as time expired.
Kansas City's only other victory this season came in overtime, a stunning upset in New Orleans in September. Any chance at a repeat faded when Cassel's pass on the second play of the extra period landed in the hands of Timmons, who returned it 23 yards to set up Suisham's second game-winning field goal of the season.
The victory, however, came at a high cost.
Roethlisberger is in the midst of a career year but struggled through a so-so first half and was 9 of 18 for 84 yards and a touchdown when Hali came down on top of him during Pittsburgh's first possession of the second half.
Byron Leftwich, playing for the first time in two years, was rusty in relief. He completed 7 of 14 passes for 73 yards though he did produce a scoring drive early in the third quarter that gave the Steelers a 13-10 lead.
It nearly held up on a night the Chiefs had one touchdown called back due to a penalty and another overturned on replay. But the team ranked last in the NFL in turnover margin saved its biggest mistake for overtime.
R Pittsburgh QB Ben Roethlisberger suffers a shoulder injury.
• Lawrence Timmons sets up the Steelers' winning FG with an interception.