Glasgow (24) 41
Tries: O'Hare, Parks, Morrison, Pinder, Barclay
Cons: Parks 5
Pens: Parks 2
Viadana (14) 31
Tries: Pedersen 2, Birchall, Bortolussi
Cons: Howarth 4
Glasgow Warriors claimed a Heineken Cup Pool Four victory over Viadana in a high-scoring encounter at Firhill.
Dan Parks scored five conversions, two penalties and a try and Hefin O'Hare, Graeme Morrison, Sam Pinder and John Barclay also scored tries.
Sean Lineen's men made heavy going of snuffing out the Italian challenge.
Viadana pressed throughout and responded through a brace of tries from Hayden Pedersen, while Aldo Birchall and Steven Bortolussi also crossed.
The Warriors' win lifts them to the top of the group with six points.
They looked on course to romp to an emphatic success when they opened up a 17-point lead.
However, they surrendered the initiative and ended up scrambling to a far from convincing win - the tide only turning back in their favour when Viadana had two men in the sin-bin.
And their carelessness could prove to be their undoing if qualification boils down to points difference.
Lineen made it clear he was far from happy at the performance of his side.
"I have absolutely nothing good to say about the game or our performance, apart from the fact that we picked up five points.
"Viadana showed a lot of guts and they took their chances well.
"But from my point of view it was definitely the poorest display I have seen from Glasgow since I became involved with the club," he added.
"We have a huge amount of work to do if we want to have any chance of being involved in the battle for qualification to the knock-out stages.
"First, we have a massively important league match against Cardiff next weekend and we will have to improve considerably."
Glasgow: Stortoni, Faatau, Morrison, Barrow, O'Hare, Parks, O'Young, Va'a, Thomson, M. Low, Turner, Kellock, K. Brown, Barclay, Beattie.
Replacements: Gregor for Stortoni (79), Henderson for Barrow (60), Pinder for O'Young (40), Milligan for Thomson (67), Kalman for M. Low (40), Palepoi for Turner (70), Eddie for Beattie (70).
Viadana: Reid, Robertson, Law, Talotti, Pedersen, Howarth, Bortolussi, De Bonis, Moretti, Redolfini, Waller, Booyse, Birchall, Persico, Benatti.
Replacements: Pace for Talotti (40), McGrath for Bortolussi (68), Santamaria for Moretti (75), Cagna for Waller (68), Bezzi for Booyse (53).
Not Used: Sciamanna, Harding.
Ref: James Jones (WRFU)