Jan Benda and Jurgen Rumrich scored crucial second period goals as the Germans became front-runners to advance from their four-team pool into final round play.
Klaus Kathan added a late empty-net goal to finish off the emphatic win in Group A.
But it was a disappointing loss for Slovakia, who have the most NHL players available of the eight preliminary round teams.
In Group B, Oleg Mikulchik scored during a two-man advantage with 12:11 to play as Belarus beat Ukraine 1-0.
Elswhere, Latvia beat Austria 4-2 in their first Olympic ice hockey appearance for 66 years, while Switzerland were held to a surprise 3-3 draw against France in the final clash of the day.