Ulster secured a place in the knockout stages of the Heineken Cup as they wore down a dogged Glasgow outfit in the Pool Four clash at Ravenhill.
A Nick Williams try helped Ulster lead 10-0 but Glasgow improved and two Duncan Weir penalties left four points between the teams by the 55th minute.
A Ruan Pienaar penalty steadied Ulster and late tries by Jared Payne and Darren Cave sealed the victory.
However, a worry for Ulster was the sight of Williams hobbling off.
Williams had to be helped off with 18 minutes left because of an apparent knee injury, while Paddy Jackson also had to be replaced in the second half after suffering a knock.
Northampton's 18-12 win over Castres means Ulster are guaranteed top spot in Pool Four before their trip to France next weekend, although Mark Anscombe's team will want to win their final group game to secure a home quarter-final.
Pienaar kicked Ulster into the lead in the seventh minute after a ruck transgression by Moray Low.
The early one-way traffic continued with Henry Pyrgos coming to Glasgow's rescue in the 18th minute as he fly-kicked to touch with Andrew Trimble bearing down on him after a clever grubber kick by Jackson.
However, from the resulting line-out, the in-form Williams bulldozed his way over for a try with Rob Harley's attempted tackle no match for the New Zealander's strength.
Pienaar added the routine conversion but missed a chance to extend Ulster's lead in the 27th minute.
A wild pass by Williams in his own 22 almost gifted a chance for Glasgow before Pienaar's relieving kick.
Court and Trimble both conceded scoring chances in the five minutes before the interval but Weir's first attempt was just short and his second effort was pulled badly wide.
However, Glasgow continued their improvement and good mauling work by the pack helped the Warriors open their account in the 49th minute as Weir slotted a penalty.
Ulster then lost Iain Henderson to the sin-bin in the 53rd minute after he was penalised for not rolling away quickly enough in a ruck.
More good forwards work yielded a second penalty for Weir in 55th minute to leave only four points between the teams.
But Ulster avoided conceding any scores during Henderson's 10-minute absence and another Pienaar penalty extended the home team's lead to seven in the 62nd minute.
However, Ulster then suffered a worrying injury blow as the rampaging Williams had to be helped off because of an apparent knee injury.
Earlier in the second half, Jackson had limped off with a leg injury which meant the introduction of Paul Marshall at scrum-half with Pienaar switching to the fly-half role.
Pienaar missed a straight-forward chance to extend Ulster's lead as he pulled the penalty badly wide.
But home nerves were eased when Payne jinked inside Van der Merwe to produce a clever close-range finish in the 74th minute after some busy scrum-half work from Marshall.
For good measure, Cave ran in a third Ulster try with a minute left after the Warriors defence was left exposed following a turnover.
Ulster coach Mark Anscombe said: "There was a job to do [against Glasgow] and we did it.
"We set out as a goal this year to make a Heineken quarter-final. But we're certainly not resting on it and we're going to Castres next week with a job to do and a purpose to what we want to get out of that game and reward our fans with a home quarter-final."
Ulster: J Payne; A Trimble, D Cave, P Wallace, C Gilroy; P Jackson, R Pienaar; T Court, R Best, J Afoa; L Stevenson, I Henderson; R Diack, C Henry, N Williams
Replacements: Allen for Gilroy (77), P. Marshall for Jackson (60), Black for Court (77), Herring for Best (77), Fitzpatrick for Afoa (77), Wilson for Diack (60).
Sin-bin: Henderson (53)
Glasgow Warriors: P Murchie; S Maitland, A Dunbar, P Horne, DTH van der Merwe; D Weir, H Pyrgos; R Grant, D Hall, M Low, T Ryder, A Kellock, J Eddie, R Harley, J Strauss.
Replacements: Hogg for Murchie (69), Matawalu for Pyrgos (71), Reid for Grant (69), MacArthur for Hall (52), Swinson for Harley (49).
Referee: Pascal Gauzere (France).