Barcelona will face Villarreal in the last eight after the latter edged Huelva 2-1 on aggregate, 2-0 on the night, but only after extra-time.