Josh Magennis headed an injury time winner as Northern Ireland beat Kosovo.
Northern Ireland ended a 14-game winless run in the Nations League with a 93rd-minute goal from Magennis.
Kosovo, ranked 106th in the world, took the lead in the 58th minute when Vedat Muriqi scored from the edge of the area.
Ian Baraclough's side struggled to break down their opponents, who won the reverse fixture 3-2, after Dion Charles' attempt was ruled out for being in an instuction.
Magennis had a great chance to score as Northern Ireland tried to get an equal score. After good work by Shayne Lavery, the leveller came when Whyte scored from close range.
The win is Northern Ireland's first in the Nations League, and the vocal response at full-time was in stark contrast to that at half-time, when sections of the crowd booed a flat opening 45 minutes.
Charles thought he had made the breakthrough on 56 minutes when he latched on to George Saville's through ball, but he was ruled out for a foul.
Northern Ireland were behind when Muriqi smashed home the opener after the strikers smiled at each other.
The Mallorca forward skipped inside Jonny Evans on the edge of the area and fired a low effort into the bottom corner before racing over to celebrate with a small group of Kosovo supporters in Northern Ireland.
The goal sparked Northern Ireland into life and Muriqi, who also netted twice in the reverse fixture, was involved at the other end.
Muric made a great save to deny Magennis and then denied Bradley on the follow-up.
Steven Davis curled straight at Muric as the section of the Kop stand chanted "We want Bara out".
Muriqi was denied by Peacock- Farrell before he converted from close range after Lavery tried to get into the area.
Kosovo fought back before Magennis came to the rescue.
When Magennis' goal flew into the top corner, NI held on to claim the three points.
Northern Ireland's build-up was disrupted when Kyle Lafferty was withdrawn from the squad amid an investigation by his club into an alleged sectarian remark.
The visitors looked bright from the start and were unfortunate not to take the lead when Peacock- Farrell palmed Florent Muslija's attempt into the patch of Milot Rashica.
When Fidan Aliti hooked over the bar from close range, there was another lucky escape.
Kosovo had a chance to break the stalemate when Muslija's low free-kick was beaten away by Peacock- Farrell, but he missed the target.
Charles looked to add some spark to Northern Ireland's attack. Minutes later another low effort was held by the Kosovan goalkeeper, after theBolton forward ran inside Betim Fazliji and his low effort was parried away by Muric.
The half-time whistle was met by a few boos around Windsor Park, but Northern Ireland's late show spared a repeat at full time.
The result leaves Northern Ireland third in League C Group Two and in a strong position to avoid a play-off if they beat Greece on Tuesday.
The formation was 4-1-3-2.
17McNair5Evans4Flanagan3LewisFormation 4-3- 3.
2Hadergjonaj5Fazliji3Aliti21Rrudhani9Celina20Dresevic8Muslija7Rashica18Muriqi11RashaniThe match ended with Northern Ireland winning.
The second half ended with Northern Ireland winning.
The goal has been scored. Northern Ireland defeated Kosovo. Josh Magennis headed the ball from the center of the box. The man with a cross was assisted by another man.
In Kosovo. Arbr Zeneli is trying to pass the ball to Donat Rrudhani.
Northern Ireland was the place where the substitution happened. Steven Davis is replaced by a new person.
The attempt was not successful. Arbr Zeneli missed the top right corner with his shot from the left side. It was assisted by Donat Rrudhani.
There is a corner in Kosovo. Bailey Peacock- Farrell was in the match.
The attempt was saved. The shot from the centre of the box is saved by the goalkeeper. assisted by Vedat Muriqi
There was a substitution in Kosovo. There is a new person in place of ElbasanRashani.
The attempt was saved. Jordan Thompson's shot was saved in the bottom right corner.
The goal has been scored. Kosovo 1 The shot was left footed and went to the bottom right corner. The assisted by Shayne Lavery.
The attempt was saved. The shot from the right side of the box is saved in the left corner. Ibrahim Dresevic assisted
The attempt was saved. Steven Davis' shot was saved in the bottom right corner. assisted by Jordan Thompson
The attempt was not successful. Patrick McNair's shot is too high. assisted by Jordan Thompson
There was a substitution in Kosovo. Loshaj takes the place of Muslija.
Northern Ireland was the place where the substitution happened. Ferguson takes the place of Lewis.
Northern Ireland was the place where the substitution happened. Corry Evans has been replaced by a new person.
Northern Ireland was the place where the substitution happened. Shayne Lavery takes Dion Charles' place.
The free kick was won by Arbr Zeneli.
Steven Davis had a foul.