Sydney have broken their Port Adelaide hoodoo by 36 points in a lopsided AFL preliminary final to book a spot in the grand final, their second time there in three seasons.