Duncan Weir missed a late penalty as Glasgow Warriors drew 19-19 with Bath but still sealed a home tie in the European Challenge Cup last 16.
Warriors led by a point at the break following converted tries by Matt Fagerson and Sione Vailanu.
Chris Cloete had crossed for the visitors but they fell further behind when Sebastian Cancelliere went over.
Orlando Bailey and Brad Spencer then kicked Bath level before Weir's last-minute kick went wide.
Warriors, with three wins and a draw, move second in Pool A on 16 points, but can be overtaken by Cardiff and Connacht. However, Franco Smith's side will finish no lower than fourth, thus sealing a home tie in the next round.
Bath, with three points, have an outside chance of finishing in the top six and progressing.
Glasgow's terrific results of late have not only taken them up the table in the United Rugby Championship, but motored them through in Europe with gathering optimism they may go considerably further.
This should have been their eighth win in a row, but the ruthlessness they showed in previous games deserted them. Pretty it was not - littered with inaccuracy and uneasy on the eye. Points shared, a case of 'blah' all round.
Bath opened the scoring with a Francis penalty and made life hard for Glasgow in the scrum, the lineout, refusing to go away and hanging in there until the end when yellow cards, if not the scores, flowed.
The hosts responded to that early penalty with a score started by a surge from Kyle Steyn up the left, off a loose Cameron Redpath kick, and finished by a blast from Fagerson, whose footwork took him past two less than convincing attempts to halt his progress.
Tom Jordan added the conversion and put over another two-pointer after a driven lineout took Glasgow through with ease. Vailanu got that one and Franco Smith's side led by 12.
Glasgow should have pulled away from there but it became a messy battle, pockmarked by handling errors and turnovers. In the midst of all this, Bath fed off Glasgow's mistakes, turning them over in their own 22 and utilising the scrum as the platform to put Cloete over. With the conversion it was 14-13, though on the balance of play it hardly seemed that way.
The opening minutes of the new half were frenetic. Sione Tuipulotu, the thunderous centre, accelerated downfield and was met by Francis, who went high in the tackle causing a head-on-head collision with the Glasgow player.
Francis came off worse and got hammered backwards. In trying to get to his feet, he staggered and went back down. He got treatment and was taken off. Before he went, he got a yellow card for going high on Tuipulotu.
Glasgow thought they had scored in the next wave, but dropped the ball as they swept under the sticks and over the line. No matter, they went again a few minutes later and the 14 men could not hold out this time, Jordan and Tuipulotu creating the space for Cancelliere to go over in the corner.
Again, the expectation of the home fans was for Glasgow to drive on and win the game pulling away, but once more Bath clawed their way back with a penalty, from Bailey.
Glasgow had territory and possession but could not make it count. They had an attacking lineout five metres out. George Turner threw it squint - not the kind of attention to be drawing when competing for a place in the Scotland 23 against England next month and with head coach Gregor Townsend watching on.
With six minutes left, Warriors' Simon Berghan saw yellow and Bailey boomed over the penalty that made it 19-19. Scotstoun could scarcely believe its eyes. Another yellow followed in quick order, Bath's Tom Ellis walking for collapsing a maul.
Glasgow had more chances to win it. They launched a massive advance but then lost control of the ball. They re-gathered and went again - and lost it again. At the death, Weir had that chance to win it with the boot - and missed. It was that kind of night.
Line-ups
Glasgow Warriors: McKay, Cancelliere, Tuipulotu, Jones, Steyn, Jordan,Price, Bhatti, Matthews, Sordoni, Samuel, Gray, Ferrie, Vailanu, M Fagerson.
Replacements: Weir for Jordan (67), Horne for Price (52), McBeth for Bhatti (52), Turner for Matthews (52), Berghan for Sordoni (52), Bean for Samuel (41), Du Preez for Gray (67), Gordon for Ferrie (77). Sin Bin: Berghan (73).
Bath: Bailey, Ojomoh, Lawrence, Redpath, Cokanasiga, Francis, Schreuder, Schoeman, Dunn, Jonker, W Spencer, Lee-Warner, Hill, Cloete, Reid.
Replacements: Joseph for Redpath (70), Gallagher for Francis (53), B Spencer for Schreuder (61), Morozov for Schoeman (52), Annett for Dunn (63), Rae for Jonker (52), Ellis for W Spencer (65), De Carpentier for Reid (75). Sin Bin: Francis (42), Ellis (75).