Bruno Alves handed the home side a free kick in a promising position when he tripped Marcos Pizzelli 35 yards out, and the midfielder spotted Rui Patricio off his line to blast the ball into the top right corner straight from the set piece.
Portugal were back on level terms just before the half-hour mark, though, as Mkhitaryan tripped Serge Gumienny in the box, allowing Ronaldo to slot a penalty in low.
The visitors did not need long after the restart to take the lead as Ronaldo burst forward to beat captain and goalkeeper Roman Berezovsky to a high ball into the box, lobbing it into the back of the net.
The Real Madrid forward completed his hat-trick just three minutes later with a long-range effort, rifling the ball into the top corner with a 25-yard strike.
Portugal's task was made harder a couple of minutes later as Tiago picked up his second booking of the evening, leaving the visitors a man short with almost half an hour still to play.
The result leaves Portugal top of Group I, while Armenia stay bottom with no wins from their first five matches.