Ilya Bryzgalov made 41 saves and held Nashville scoreless in the third while Upshall was putting together the most impressive scoring outburst of his seven-year career.
Upshall tied it 4:02 into the third period when he scored from the left circle with a low wrist shot. He then grabbed his own rebound and delivered the go-ahead goal with 6:38 remaining.
His final goal came after he raced to catch up with an outlet pass from Martin Hanzal.
Upshall ran his goal total for the season to a career-best 17.
The Coyotes halted the Predators' five-game road winning streak.