Match ends, Armenia 0, Albania 3.
Albania qualified for a major tournament for the first time in their history as victory in Armenia secured their place at Euro 2016.
A Kamo Hovhannisyan own goal set them on their way, with Ledian Memushaj adding a second from a free-kick and Armando Sadiku tapping home a third.
The win means Albania leapfrog Denmark into second place in Group I.
Portugal - who had already qualified as group winners - won 2-1 against Serbia, who had two men sent off.
Manchester City's Aleksandar Kolarov was shown two yellow cards and Chelsea midfielder Nemanja Matic was given a straight red for violent conduct after taking a frustrated swipe at Portugal's Andre Andre.
Portugal rested captain Cristiano Ronaldo for the game in Serbia, having already secured top spot in Group I and qualification with a game to spare.
Ronaldo's former Manchester United team-mate Luis Nani gave them an early lead with a left-foot finish, but Zoran Tosic equalised for Serbia with a powerful first-time strike in the second half.
Substitute Joao Moutinho scored Portugal's winner with a shot from the edge of the box 12 minutes from the end.
Albania's win means Denmark finish third in the group, and will face a play-off to qualify for France next summer.
Line-ups
Armenia
Formation 4-4-1-1
- 12Kasparov
- 13Hovhannisyan
- 3Haroyan
- 5ArzumanyanBooked at 17mins
- 2AndonianBooked at 82mins
- 18Mkhitaryan
- 17YuspashyanBooked at 27minsSubstituted forÖzbilizat 45'minutes
- 6Mkrtchyan
- 10GhazaryanSubstituted forPogosyanat 83'minutes
- 8Pizzelli
- 14MovsisyanSubstituted forSarkisovat 59'minutes
Substitutes
- 1Beglaryan
- 4Voskanyan
- 7Grigoryan
- 9Pogosyan
- 11Sarkisov
- 15Simonyan
- 16Aslanyan-Mamedov
- 19Hambardzumyan
- 20Hayrapetyan
- 21Manoyan
- 22Manukyan
- 23Özbiliz
Albania
Formation 4-3-3
- 1Berisha
- 4Hysaj
- 5Cana
- 6DjimsitiBooked at 64mins
- 7AlijiBooked at 52mins
- 8BashaBooked at 80minsSubstituted forAbrashiat 87'minutes
- 14Xhaka
- 9MemushajSubstituted forKukeliat 73'minutes
- 21Roshi
- 16CikalleshiSubstituted forSadikuat 59'minutes
- 11Gashi
Substitutes
- 2Rrahmani
- 3Lenjani
- 10Sadiku
- 12Shehi
- 13Kukeli
- 15Ajeti
- 17Shala
- 18Salihi
- 19Balaj
- 20Kace
- 22Abrashi
- 23Hoxha
- Referee:
- Szymon Marciniak
Match Stats
- Possession
- Home62%
- Away38%
- Shots
- Home16
- Away10
- Shots on Target
- Home3
- Away6
- Corners
- Home2
- Away2
- Fouls
- Home12
- Away13
Live Text
Post update
Full Time
Second Half ends, Armenia 0, Albania 3.
Post update
Aras Özbiliz (Armenia) wins a free kick on the right wing.
Post update
Foul by Burim Kukeli (Albania).
Post update
Foul by Varazdat Haroyan (Armenia).
Post update
Armando Sadiku (Albania) wins a free kick in the attacking half.
Post update
Delay over. They are ready to continue.
Post update
Delay in match Odise Roshi (Albania) because of an injury.
Post update
Foul by Varazdat Haroyan (Armenia).
Post update
Armando Sadiku (Albania) wins a free kick on the left wing.
Post update
Attempt saved. Shkelzen Gashi (Albania) right footed shot from outside the box is saved in the centre of the goal. Assisted by Armando Sadiku.
Post update
Attempt missed. Aras Özbiliz (Armenia) left footed shot from outside the box is high and wide to the left from a direct free kick.
Substitution
Substitution, Albania. Amir Abrashi replaces Migjen Basha.
Post update
Karlen Mkrtchyan (Armenia) wins a free kick in the attacking half.
Post update
Foul by Armando Sadiku (Albania).
Post update
Offside, Armenia. Varazdat Haroyan tries a through ball, but Vardan Pogosyan is caught offside.
Substitution
Substitution, Armenia. Vardan Pogosyan replaces Gevorg Ghazaryan.
Booking
Gael Andonian (Armenia) is shown the yellow card for a bad foul.
Post update
Foul by Gael Andonian (Armenia).
Post update
Migjen Basha (Albania) wins a free kick in the defensive half.