The Magpies faced an early attack from the visitors as Tijani Reijnders raced into the box but the midfielder's strike was directed wide of the right-hand post despite protests for a penalty following Malick Thiaw's recovering tackle on the Dutchman.
Nick Woltemade saw a header cleared off the line by Nico González after Man City goalkeeper James Trafford failed to collect Will Osula's header from Kieran Trippier's teasing corner.
In the 17th minute, Newcastle took the lead through Barnes as the left winger, who netted a brace in November's Premier League win against Man City, raced onto Sandro Tonali's inviting through ball before cooly placing the ball into the top right-hand corner.
Eddie Howe has made four changes to his starting XI which claimed a 2-1 win against Manchester United in the Premier League on Wednesday night.
Will Osula, Nick Woltemade, Sven Botman and Joe Willock were all handed starts at St. James' Park, with Anthony Gordon, Joelinton and Dan Burn dropping to the bench.
Jacob Ramsey missed out due to suspension following his red card against the Red Devils.
The Magpies booked their place in the Emirates FA Cup fifth round following a 3-1 comeback win away at ten-man Aston Villa while Man City claimed a 2-0 win against League Two outfit Salford City in round four.
Should the tie finish level after 90 minutes, extra-time will be required on the night.
Newcastle have won the FA Cup on six occasions, with their last triumph recorded in 1955 after a 3-1 victory over Man City in the final at Wembley Stadium.
**Newcastle United:** Aaron Ramsdale, Kieran Trippier (c), Lewis Hall, Sven Botman, Sandro Tonali, Harvey Barnes, Malick Thiaw, Will Osula, Anthony Elanga, Nick Woltemade, Joe Willock.
**Substitutes:** Nick Pope, Joelinton, Yoane Wissa, Anthony Gordon, Tino Livramento, Jacob Murphy, Dan Burn, Alex Murphy, Sean Neave.