Cristiano Ronaldo was the hero as his late header gave Portugal a deserved 1-0 win over the Czech Republic and sent his side into the semi-finals of Euro 2012.