In a game which was spoiled by the wind Celtic's best effort in the first half was Gary Hooper's long-distance strike which Craig Samson saved while Celtic keeper Fraser Forster made a string of saves, the best being from former Parkhead midfielder Paul McGowan.
But in the 71st minute Forrest took a pass from Brown and beat Samson from the edge of the box before the Hoops skipper grabbed number two with three minutes remaining to put the pressure on Rangers who play Aberdeen at Ibrox later in the day.
The swirling wind made good football difficult, but Celtic controlled the game in the early stages. Celtic striker Hooper took a pass from Georgios Samaras and his looping, wind-assisted effort from 35 yards had Saints keeper Samson scrambling to make a fine save for a corner.
St Mirren worked their way back into the game and in the 38th minute, after Celtic defender Thomas Rogne half-cleared an Dougie Imrie cross from the right with his head, Graham Carey's angled-volley from 16 yards sped wide of Forster's left-hand post.
The strong winds showed no signs of subsiding as the second-half began but it was St Mirren who took the early initiative. In the 51st minute Imrie had a left-footed drive smothered by Forster before the Celtic keeper made a great save from former Celtic midfielder McGowan, who redirected David van Zanten's strike towards goal from 10 yards out.
In the 62nd minute, with the game swinging from end to end, Forster made another save from Imrie. Celtic were pressing hard for the opener and it came in the 71st minute from Forrest with his eighth goal of the season.
Following a Kris Commons free-kick which was cleared to the edge of the box, Hoops skipper Brown set up the Scotland winger who drove low past Samson into the corner of the net.
With nothing to lose St Mirren piled forward and 10 minutes from the break Forster made another good close-range block, this time from Saints defender Lee Mair following a Carey corner.
In an exciting finale Hooper shot wide of the target from inside the box as did Imrie at the other end before Brown, with three minutes remaining, took a Commons corner outside the box and curled his shot past Samson to ensure the three points.
Source: PA
Source: PA