Portadown came from behind to beat 10-man Glentoran and move to the top of the Irish Premiership table.
After an uninspiring first half, Marcus Kane put the Glens ahead with a 25-yard left-foot strike into the top corner in the 57th minute.
Gary Twigg headed in the equaliser on 69 minutes and McMahon tapped in after Elliott Morris had tipped Twigg's initial effort onto the bar after 86.
Calum Birney was sent-off for a bad challenge with one minute remaining.
Birney's tackle on Ryan McStay led to players from both sides getting involved in pushing and shoving before order ws restored.
Neither side could make an impact in a dull first half, although Chris Casement was fortunate not to concede a penalty for his challenge on Mark Miskimmin inside the area.
After the interval Darren Murray's shot was pushed onto the post by Morris while Miskimmin fired just over the bar at the other end.
Morris picked up an injury in the second half with his movement appearing to be inhibited but he remained on the pitch as the Glens didn't have a replacement keeper on the bench.
The Ports enjoy a one-point lead over Glenavon and Linfield and face an away trip to Warrenpoint Town in their next game next Saturday.