Kerry ended Donegal's winning run in Division One of the Football League as the Kingdom earned a 1-13 to 1-8 win in a bad-tempered game at Tralee.
Kerry's Alan Fitzgerald and Donegal's Leo McLoone were sent off after one of several melees as Peter Crowley and Michael Murphy hit the goals.
Two late points from keeper Robert Hennelly helped Mayo earn their first win as they beat Monaghan 2-11 to 1-12.
Down suffered a fourth straight loss as Roscommon won 1-12 to 0-6 at Longford.
Bryan Sheehan hit eight points from frees in Kerry's win at Austin Stacks Park in a game which was punctuated by several ugly skirmishes.
After the first of three fisted points from Donnachadh Walsh, the opening bout of disturbances broke out with full-forward Fitzgerald sent off after leaving Neil McGee with a bloody nose.
Helped by a strong wind, Kerry led 0-4 to 0-1 and 0-6 to 0-2 before their progress was halted by the black carding of Denis Daly and Shane Enright, the latter for a hand trip on Murphy.
A further outbreak of hostilities led to Laois referee Eddie Kinsella pointing the red card at McLoone, although there appeared to be other transgressors in the incident.
After trailing 0-7 to 0-3 at half-time, Donegal, now boosted by the elements, looked to be on their way to victory as four quick points levelled the contest by the 42nd minute.
However, then came the key moment of the match as Crowley strode up from wing-back to net past Peter Boyle after a quickly-taken free picked out Kieran Donaghy.
Three more unanswered Sheehan frees extended Kerry's lead to six before Donegal appeared to be right back into it as Murphy blasted to the net after fielding a high ball into the Kerry square.
Another Murphy free cut Kerry's lead to two but after the Donegal skipper and Paddy McBrearty missed chances to further reduce the Kingdom advantage, the home side responded with the final three scores, including Colm Cooper's injury-time effort.
The defeat drops Donegal to second in Division One, two points behind 100% Dublin, while Kerry have four points from four games.
Mayo earn gritty win at Clones
Mayo boosted their hopes of avoiding the drop as they battled to a deserved two-point win over Monaghan at Clones.
Aidan O'Shea's black carding was an early blow for the Connacht champions but they responded well to Conor McManus' 11th-minute goal as Conor Loftus immediately replied with a three-pointer.
McManus' netted his goal as he followed up to score after Hennelly had saved his penalty.
After trailing 1-5 to 1-2, Mayo hit the last four scores of the first half to edge ahead.
Mayo extended their lead to five early in the second half as a Jason Doherty point was followed by Diarmuid O'Connor cleverly sliding the ball under Rory Beggan and into the net.
Stephen Roachford's side then appeared to make the mistake of attempting to hold on to their lead and as Monaghan took the initiative, they hit seven of the next nine scores as McManus' ninth point levelled the contest in the 65th minute.
But Hennelly's long-range free restored Mayo's lead a minute later and he added a further point in injury-time.
The win moves Mayo out of the relegated places while Monaghan have four points from their four games.
Down descent continued against Roscommon
Down's chastening Division One campaign continued as they were outclassed by Roscommon, in a game moved to Longford.
The Mourne County led early on after points from Darragh O'Hanlon and Connaire Harrison but Roscommon responded with seven unanswered scores, including four Ciaran Murtagh efforts.
Down did have a mini-revival just before the interval as Harrison and Mark Poland pointed and a goal chance also flashed just wide.
But with the excellent Fintan Cregg, Murtagh and Senan Kilbride among the scorers, Roscommon regained total control after the interval.
Murtagh's 65th-minute penalty was the final score of the match as he blasted past replacement keeper Stephen Kane after Michael Cunningham had been black carded for bringing down Cregg.
Roscommon's win leaves them sharing second spot with Donegal on six points while Down are now the only team in the division without a point.
WEEKEND ALLIANZ FOOTBALL LEAGUE RESULTS
Roscommon 1-12 0-06 Down
Kerry 1-13 1-08 Donegal
Monaghan 1-12 2-11 Mayo
Fermanagh 1-17 0-10 Laois
Galway 0-15 1-12 Meath
Tipperary 2-11 0-12 Offaly
Kildare 1-11 1-10 Limerick
Clare 1-18 0-10 Westmeath
Sligo 2-09 1-17 Longford
London 0-11 1-11 Antrim
Leitrim 0-16 2-09 Louth
Wicklow 0-14 0-17 Carlow
Dublin 2-14 2-10 Cork
Cavan 3-18 0-10 Armagh
Tyrone 2-15 0-12 Derry
Waterford 0-11 0-12 Wexford