Celtic remain five points behind leaguer leaders Hearts after this hard earned victory.
After a first-half pounding from the home team, Inverness took a surprise lead shortly after half-time through Dennis Wyness. Their lead was short-lived after Craig Beattie equalised within five minutes.
The Celtic striker then won the match with a run from the halfway line before sliding his shot past Mark Brown from 20 yards. It was hard luck on the Caley keeper who had defied Celtic in the first half with a series of brilliants saves.
The visitors had to make a late change to their line-up after Stuart Golabek injured himself in the warm-up with Alan Morgan deputising.
The visitors threatened briefly early on but Liam Fox shot over. Craig Brewster, the Inverness manager, went down after a challenge by Bobo Balde but eventually recovered.
Celtic threatened when Chris Sutton's clever pass found John Hartson but the striker was slow to react. Thistle came close when Barry Wilson cut inside Paul Telfer and Shunsuke Nakamura, but his powerful shot went over. It was an encouraging start for the visitors but they were soon pinned back by a wave of Celtic attacks.
The ball broke kindly to Beattie in the box but Brown did well to blow the striker's powerful shot with his legs. Hartson nearly found Nakamura with a cutback before a swift interchange between Paul Telfer and Beattie ended with Hartson's effort being blocked.
From Telfer's cross Beattie rose well at the back post but again Brown parried away his header.
The keeper did even better a minute later when Beattie found himself clear in front of goal at point-blank range. Brown blocked his shot and the keeper was called upon again to keep out Sutton's header.
Hartson was next to try and beat the Thistle keeper but his header form Shaun Maloney cross was beaten away. After Ross Tokely was rather harshly adjudged to have fouled Beattie, Shaun Maloney took the resulting free-kick but Stephen McManus from six yards struck the bar.
From another Maloney free-kick McManus found space at the post but glanced his header wide.
Another inswinging free-kick from Maloney troubled the visitors defence when first Sutton threw himself full in but failed to get a touch and then Brown was relieved as the ball drifted narrowly past his post.
The visitors nearly snatched a goal on the stroke of half-time when Wyness collected a Wilson pass but saw his well struck shot saved by Artur Boruc diving to his left.
The home side were forced to make a substitution shortly after the restart when Adam Virgo came on for McManus although he did not appear to be injured.
The visitors' early pressure resulted in a goal when Brewster's flick from Tokely's long throw found Wyness, who had time to turn before shooting home through Boruc's legs.
This goal stunned Celtic and they nearly went further behind when David Proctor beat Mo Camara and from his cross Wyness stepped over the ball, but Brewster completely mishit his shot from 15 yards.
Celtic drew level after a brilliant move. The swift exchange of passes between Nakamura and Sutton eventually found Maloney, whose pass inside Darren Dods was dispatched into the net by Beattie.
There were loud appeals for a penalty when Sutton when down in the box soon after but the ref waved away his claims.
The visitors were nearly caught out by a quickly-taken free-kick from Nakamura to Maloney but eventually managed to clear the danger.
There was another home claim for a penalty when Nakamura's shot struck an arm but again the ref was not interested.
Beattie snatched the winner for Celtic when Nakamura's pass from the halfway line beat the offsite trap and the pacey striker left the defence for dead as he raced through before curling his shot past Brown from 20 yards.
Balde just failed to get a touch to a Sutton flick as Celtic looked to increase their lead.
It was then the visitors' turn for a penalty claim when Virgo appeared to use an arm in clearing Richard Hart's corner, but the Bhoys held on for victory.