Wayne Rooney helped DC United claim a dramatic late draw in MLS on Saturday, while Philadelphia Union suffered a surprise loss.

Rooney's 90th-minute penalty saw DC secure a 1-1 draw against New England Revolution at Gillette Stadium.

New England goalkeeper Matt Turner was sent off in the 56th minute after a heavy challenge on Rooney, but the hosts still took the lead through a Juan Agudelo header.

However, Rooney stepped up to convert a late spot-kick as DC United took a one-point lead atop the Eastern Conference.

Philadelphia could have moved top, but they suffered a 3-1 loss at home to the Portland Timbers.

Brian Fernandez scored a first-half brace, heading in an Andy Polo cross before completing a wonderful team move.

Diego Valeri's brilliant curling strike from 20 yards sealed Portland's win after Kacper Przybylko had pulled a goal back for Union.

The defeat ended Philadelphia's six-match unbeaten run.

Elsewhere, the New York Red Bulls stretched their unbeaten streak to four games by beating Cincinnati 2-0.

Minnesota United edged Houston Dynamo 1-0, the Vancouver Whitecaps overcame Dallas 2-1 and Chicago Fire drew 1-1 against New York City.

Nicolas Mezquida's late goal lifted the Colorado Rapids to a 3-2 victory over Columbus Crew.