Milan Skriniar put the hosts in front in the 38th minute when the Inter Milan defender slipped his marker and headed home after connecting with a Mak corner.
Russia -- who will be without Rifat Zhemaletdinov in their next match against Croatia after he picked up a yellow card - drew level in the 71st minute after Mario Fernandes scooped a rebound into the net.
But Mak netted the winner three minutes later when he latched onto a Tomas Hubocan pass inside the penalty area before beating a pair of Russian defenders and driving the ball past Russia keeper Anton Shunin.
Russia are level on six points with Croatia at the top of Group H while Slovakia are a point behind. In the other group matches Croatia cruised past Malta 3-0 while Cyprus beat Slovenia 1-0.