Sachverhalt: A. A.a. A._ (geb. am 15. Juni 1974) ist ukrainische Staatsangehörige. Aus ihrer ersten Ehe mit einem Landsmann war der Sohn B._ (geb. am 18. September 1993) hervorgegangen. Am 25. August 2004 heiratete A._ in Dietikon ZH den Schweizer Bürger C._ und kehrte anschliessend in die Ukraine zurück. Am 16. Januar 2005 reiste sie mit ihrem Sohn in die Schweiz ein, worauf beide die Aufenthaltsbewilligung erhielten. Seit dem 14. Oktober 2006 lebten A._ und C._ getrennt. Die (kinderlose) Ehe wurde am 21. August 2009 geschieden. Die Sicherheitsdirektion des Kantons Zürich verweigerte die Verlängerung der Aufenthaltsbewilligungen am 18. Juni 2008 und wies A._ und B._ aus der Schweiz weg. Dagegen wurde am 18. Juli 2008 Rekurs beim Regierungsrat erhoben. A.b. Am 7. Januar 2010 heiratete A._ in Wetzikon ZH den Schweizer Bürger D._. Die Sicherheitsdirektion wies die Gesuche um Erteilung der Aufenthaltsbewilligung an A._ und B._ am 25. März 2010 ab, weil die eheliche Wohngemeinschaft nicht aufgenommen worden sei und keine wichtigen Gründe für das Getrenntleben vorgelegen hätten. Die Ehegatten nahmen am 14. April 2010 die eheliche Wohngemeinschaft auf, worauf das Migrationsamt des Kantons Zürich A._ und B._ am 20. September 2010 die Aufenthaltsbewilligung erteilte. Das am 18. Juli 2008 anhängig gemachte Rekursverfahren vor dem Regierungsrat wurde infolge Rückzugs als erledigt abgeschrieben. In der Folge ersuchte A._ insgesamt drei Mal um vorzeitige Erteilung der Niederlassungsbewilligung, was das Migrationsamt am 5. Oktober 2011, am 24. Februar 2012 und am 28. Juni 2012 ablehnte. A._ focht die Verfügung vom 28. Juni 2012 bei der Sicherheitsdirektion an. Zwischen 14. Juli 2011 (Angabe von D._) und 9. Mai 2012 oder 15. Juni 2012 (Angaben von A._) hoben die Ehegatten den gemeinsamen Haushalt auf. B. Am 31. Mai 2013 beantragte A._ die Verlängerung ihrer Aufenthaltsbewilligung, wobei sie "verheiratet" und "getrennter Haushalt" angab. Das Migrationsamt teilte A._ am 7. Mai 2013 mit, es beabsichtige, die Aufenthaltsbewilligung nicht zu verlängern, da die Ehe weniger als drei Jahre gedauert habe und auch keine wichtigen persönlichen Gründe vorlägen, welche einen weiteren Aufenthalt in der Schweiz erforderlich machen würden. A._ machte mit Stellungnahme vom 5. Juni 2013 geltend, D._ habe sie im März 2011 misshandelt, was eine ärztliche Behandlung und eine zweiwöchige Arbeitsunfähigkeit nach sich gezogen habe. Dies und das konfliktreiche Verhältnis zwischen ihrem Sohn und ihrem Ehemann habe schliesslich zur Trennung geführt. Am 29. Juli 2013 wies das Migrationsamt das Gesuch um Verlängerung der Aufenthaltsbewilligung ab und wies A._ aus der Schweiz weg. Die Sicherheitsdirektion vereinigte die Rekursverfahren betreffend vorzeitige Erteilung der Niederlassungsbewilligung und betreffend Verlängerung der Aufenthaltsbewilligung und wies die Rekurse am 19. Dezember 2013 ab. Mit Urteil vom 2. April 2014 bestätigte das Verwaltungsgericht des Kantons Zürich den Entscheid der Sicherheitsdirektion in den beiden Hauptpunkten, hob ihn indessen insoweit auf, als A._ die unentgeltliche Rechtspflege verweigert worden war. C. A._ erhebt am 21. Mai 2014 Beschwerde in öffentlich-rechtlichen Angelegenheiten beim Bundesgericht mit den Anträgen, das angefochtene Urteil aufzuheben und das Migrationsamt anzuweisen, ihr die Aufenthaltsbewilligung zu verlängern; eventuell sei die Sache zu ergänzender Abklärung an das Verwaltungsgericht zurückzuweisen, wobei sie und ihr Sohn anzuhören seien. A._ beantragt die Gewährung der unentgeltlichen Rechtspflege mit Rechtsanwalt Marc Spescha als unentgeltlichem Rechtsbeistand. Das Verwaltungsgericht und die Sicherheitsdirektion verzichten auf eine Vernehmlassung. Das Bundesamt für Migration beantragt die Abweisung der Beschwerde. Mit Präsidialverfügung vom 26. Mai 2014 ist der Beschwerde antragsgemäss aufschiebende Wirkung zuerkannt worden.