Although Mayweather took full advantage of Alvarez' youth and relative inexperience in top level fights, Canelo was a very good fighter. That being said, Crawford is on the other side of his prime so neither of them are at their all-time best. I've got to go with Crawford in a very nasty fight full of macho bravado and angry exchanges.
I don’t think people realize that before Mayweather, Alvarez only had fought two top 10 ranked contenders at 154. Crawford probably knocks out this version of Canelo.