The 20-year-old from Milngavie finished just four points adrift of double Olympic champion Laura Trott of England and Wales' Elinor Barker.
Trott finished level with her Team GB colleague on 37 points after 25 hotly-contested kilometres but secured top spot on the podium by pipping Barker in the very last sprint - and only then after studying replays.
The English athlete won two of the 10 sprints on offer, with Barker taking three, but the former's consistency - registering in all but four of the scoring laps - kept her towards the top of the standings throughout.
Barker's final sprint victory saw her take the lead with 10 laps remaining but Trott moved level by claiming three points to her rival's two at the death.
Trott said: "It's absolutely unbelievable, I've had such a bad week of it with the kidney infection.
"It really set me back and knocked my morale a bit.
"I've hardly eaten for two days, I've been living off porridge and I don't like porridge.
"I felt so bad at time during that race but I'm really happy to have pulled it off."