Thanks for your answers.
It looks like American Express is still the way to go. They have a rate of 1 Iberia Avio per dollar spent which looks good. Interestingly enough, the rate goes down to 0.9 Avio per dollar if you transfer your points to BAEC. I guess it's time to quit BAEC for good.
I remember some years ago Banco Itaś had TAM Fidelidade cards, but it seems they don't issue those anymore.