Borussia Dortmund secured a vital win in Russia after beating Zenit St Petersburg 4-2 in the first leg of their UEFA Champions League last-16 tie.