CAIRO — Algeria's forward Riyad Mahrez's stunning free kick in stoppage time gave Algeria a 2-1 win over Nigeria in a tense Africa Cup of Nations semi-final played in a volatile atmosphere on Sunday.