In the Premier League, Chris Herd returned from a head injury to play the full 90 minutes of Aston Villa’s 0-0 draw with Sunderland.

Herd made some important challenges and did an excellent job of breaking up play in midfield, but he would have been disappointed that Villa weren’t able to get the three points needed to reduce the risk of relegation.

The Villans remain in 15th position, just five points clear of the drop zone with four matches remaining.

Tim Cahill was an 83rd minute substitute in Everton’s dramatic 4-4 draw with Manchester United, while Mark Schwarzer had a busy match between the posts as Fulham defeated Wigan 2-1.

Elsewhere in England, Adam Federici put in a full shift as Reading secured the npower Championship title after drawing 2-2 with Crystal Palace.

Federici, along with Alex Pearce and Jem Karacan, make up the three-man shortlist for Readings’ Player of the Season.

Scott McDonald played 59 minutes and Rhys Williams made a surprise return from injury in Middlesbrough’s 2-1 victory over Southampton.

Williams wasn’t expected to play again this season, but he was named among the substitutes and came on in the 59th minute to help Boro win three invaluable points and stay in the fight for promotion.

Middlesbrough will have to defeat Watford, and hope that Cardiff lose to Crystal Palace, if they are to earn a promotion play-off spot.

Shane Lowry played another 90 minutes in the centre of defence as Millwall defeated Ipswich Town 3-0.

Earlier in the year, the Lions were among the prime contenders for relegation, but a run of five straight wins has ensured their survival.

Neil Kilkenny's Bristol City secured their position in the Championship by defeating Barnsley 2-0.

Kilkenny came on in the 46th minute and would have scored for Bristol if it weren’t for a fantastic save from David Button.

In League One, Dean Bouzanis’ Oldham Athletic drew 1-1 with Bailey Wright’s Preston North End.

Preston and Oldham are in 15th and 18th position respectively, with no chance of either relegation or promotion.

In the Scottish Premier League, Ryan McGowan played a full match as Hearts lost 3-0 to Rangers, while Aaron Mooy was an unused substitute in St Mirren’s 4-4 draw with Dunfermline.

Mitchell Langerak’s Borussia Dortmund won their second successive Bundesliga title after defeating Borussia Monchengladbach 2-0.

Langerak was an unused substitute for Dortmund, while Mathew Leckie was not in the Gladbach squad.

Nikitia Rukavytsya started and played 66 minutes as 10-man Hertha Berlin edged closer to relegation with a 2-1 loss to last-placed Kaiserslautern.

Hertha are in 17th position and face automatic relegation from the Bundesliga if they don’t win at least one of their remaining two fixtures.

In the Austrian Bundesliga, James Holland didn’t make it off the bench in Austria Wien’s 1-0 loss Kapfenberger.

Wien are currently in 3rd spot on the table and are clinging onto a Europa League spot courtesy of a superior goal difference. 

In the Eredivisie, Tommy Oar came on in the 87th minute while Michael Zullo remained on the bench for FC Utrecht in the 2-0 win over RKC Waalwijk.

Jason Davidson played a full match in the centre of defence as nine-man Heracles withstood a late barrage from De Graafschap to hold on for a 3-2 win.

Aston Villa-bound Brett Holman returned from injury and scored a stunning low drive from outside the box for AZ Alkmaar in the 2-1 win over VVV Venlo.

AZ are still six points behind league leaders Ajax and, with just three games left, are unlikely to win the championship.

In the Russian Premier League, Luke Wilkshire played 80 minutes and picked up a yellow card for Dinamo Moscow in the 1-0 victory over city rivals CSKA Moscow.

The win was a crucial one for Dinamo, as they look to secure second spot on the table and earn a place in the Champions League.

It was another bitterly disappointing weekend for Aussies in the K-League, with Adrian Madaschi and Matt McKay the only players to get any game time.

Madaschi made his return from injury and put in a full shift for Jeju United in the 1-1 draw with FC Seoul, while McKay played a full game as Busan I’Park defeated Gangwon 1-0.

In the J-League, Jade North played a full match for Consadole Sapporo in the 3-2 loss to Kawasaki Frontale.

Josh Kennedy’s back injury kept him out of the Nagoya Grampus side that drew 1-1 with Sanfrecce Hiroshima, while Matthew Spiranovic wasn't in the match day squad as Urawa Red Diamonds went down 2-0 to Omiya Ardija.

Alex Brosque started in midfield and scored his fourth goal of the season as Shimizu S-Pulse were defeated 3-1 by Gamba Osaka. 

Brosque capitalised on Gamba’s failure to clear to score a late consolation goal for Shimizu.

In the J2-League, Mark Milligan was not in the JEF United team that lost 1-0 to Matsumoto Yagama.

In the Chinese Super League, Rostyn Griffiths did not make it off the bench for Guangzhou R&F’s 2-1 loss to Shandong Luneng. 

Joel Griffiths was not in the squad as Shanghai Shenhua defeated Dalian Shide 1-0, while Jonas Salley played a full match for Shanghai Shenxin in the 1-0 loss to Jiangsu Shuntian.

Dino Djulbic’s Guizhou Renhe drew 2-2 with Mile Sterjovski’s Dalian Aerbin. Djulbic put in a full shift, while Sterjovski started and played 69 minutes.

Milan Susak played the whole match for Tianjin Teda in the 2-0 victory over Hangzhou, while Reinaldo was an unused substitute for Beijing Guon’s 0-0 draw with Liaoning Whowin.

In the Uruguayan National League, Australian-Uruguayan striker Richard Porta scored a brace for Nacional in the 3-2 victory over Rentistas.