The difference is that Portugal has other good players. Sweden has mediocre players in most positions.
I'm pretty sure Zlatan is over the hill though. He's been really slow these last two games, and doesn't seem to want to even try and do something. Previous years he's been at least passing and dribbling, even if it hasn't always resulted in anything, and he has saved Sweden quite a number of times before. Now he's just standing still with the ball and doing nothing.