Maximum-cardinality matching in unbalanced bipartite graphs
I just found the answer myself. In this paper:


  Lyle Ramshaw, Robert E. Tarjan (2012). "On minimum-cost assignments in unbalanced bipartite graphs‏". Technical reports, HP research labs.


in section 5, the authors show that the Hopcroft-Karp algorithm in fact solves the following problem: given an integer $s$, find matchings with $1,\ldots,s$ edges. The run-time is $O(|E|\sqrt{s})$. In particular, if $|X|&lt;|Y|$, we can take $s=|X|$ and the run-time is $O(|E|\sqrt{|X|})$.