Manchester City midfielder Fernandinho has signed a two-year contract extension to keep him with the Premier League leaders until June 2020.

The Brazil international has been a mainstay of Pep Guardiola's side as City have established a 12-point advantage in England's top flight this term.

Former Barcelona boss Guardiola has labelled the 32-year-old as "one of the best three holding midfielders in the world" and insisted he would not have got into this City team during his playing days due to Fernandinho's quality.

As Yaya Toure moves towards an expected exit when his deal expires in June, City have been linked with moves for Shakhtar Donetsk's Fred and Nice's Jean Michael Seri to bolster an area of Guardiola's squad where Fernandinho reigns supreme.

"This is a club with a fantastic future and I want to be a part of it for as long as possible," Fernandinho said, having joined City from Shakhtar in 2013.

"With Pep in charge, I feel sure we can win significant silverware and, importantly, we will try to do it playing attractive, attacking football.

"It's a pleasure to be a part of this club and I look forward to seeing what the next few years bring."

Fernandinho won the Premier League and EFL Cup during his debut season in England under Manuel Pellegrini, scoring in the final before City regained the latter competition on penalties against Liverpool in 2016.

He has featured in all 23 Premier League games this season, starting 22, and has racked up 212 City appearances overall - scoring 19 goals.

"We're delighted Ferna has signed his new contract," said director of football Txiki Begiristain, with the club having also tied down centre-back Nicolas Otamendi to extended terms earlier this week.

"He is a senior member of the squad and his professionalism and work ethic are second to none.

"His form has been fantastic this season and we’re happy he's extended his deal for a further two years."

City host Newcastle United on Saturday having suffered a first Premier League defeat of the season at Liverpool last time out.