Thumbing through the newspaper previews for Roma’s match against Milan, one might have come away with the impression that Italy was preparing not for a football match but rather an assault on King’s Landing. Like the put-upon peasants in Game of Thrones, columnists yearned for a less oppressive form of leadership. It was time, as La Repubblica put it, for the “One, True, Anti-Juve” to emerge.

In the standings, there was nothing to choose between these two pretenders to the Serie A throne. Joint second on 32 points, they each trailed Juventus by seven. But the Milan manager, Vincenzo Montella, was quick to assert that Roma – on the basis of money spent, experience and stated ambitions – should be considered as favourites – and his opposite number concurred.

“He is right when he says that Roma were built to win [now] and Milan weren’t,” Luciano Spalletti said. “That means I am doing normal things, while he is achieving extraordinary ones.”

For all the media hyperbole, the tone of this pre-game back-and-forth was warm. It might not always have been so. Spalletti was the man who curtailed Montella’s time as a player with Roma, effectively blocking the striker’s path into the team when he started to deploy Francesco Totti as a false nine.

“I deserved more but I’ve forgiven him,” Montella reflected, before going on to stress how much he had learned about management from his former boss. Spalletti received such comments with a smile, observing: “It’s easier to understand your parents when you become a parent yourself.”

If Montella, in that analogy, is still a young father, then perhaps it was fitting that he should show up in Rome with the most youthful side seen in the Italian top flight this season. The average age of Milan’s starting XI on Monday night was only 23 years and 343 days old.

Yet, these players hardly appeared overawed. Montella had set his team up to mirror Roma and through the first hour a midfield composed of Manuel Locatelli (18 years old), Mario Pasalic (21) and Andrea Bertolacci (25) more than held their own against Radja Nainggolan, Daniele De Rossi and Kevin Strootman.

That the latter player was involved at all was a sore point for some. Strootman had initially been given a two-game suspension after he helped to instigate a sideline scuffle during his team’s win over Lazio, first splashing water over Danilo Cataldi and then collapsing meekly to the ground when the latter reacted by grabbing at his collar.

The Dutchman’s punishment, however, was overturned, with the sporting court of appeals concluding that they could not prove he had intentionally exaggerated his tumble. The throwing of water had been witnessed by officials at the time and punished with a yellow card. If the court’s judgment represented a correct application of the letter of the law, then many would agree that the law is an ass.

Either way, Strootman’s presence was not enough to elevate his team on Monday. He, just like his midfield team-mates, became bogged down in a stodgy game in which both teams struggled to impose themselves.

Roma sorely missed the pace and directness of the injured Mohamed Salah, just as they had in the Derby della Capitale, and their only two real chances of the first half owed everything to the hard work of Edin Dzeko. A player transformed this season, the Bosnian made the most of his few touches – seeing one shot well saved by Gianluigi Donnarumma after he beat his man cutting in from the right, then flashing another wide by a hair after muscling his way into position to reach a long ball behind two defenders.

In between those two opportunities, Milan missed a penalty. Only Wojciech Szczesny can know what prompted him to plunge into the legs of Gianluca Lapadula at a moment when Federico Fazio already seemed to be tracking the attacker’s run into the box effectively. But the keeper made amends by saving a tame effort from M’Baye Niang – the second time that the Frenchman has failed to convert from the spot in as many games.

Wojciech Szczesny saves M’Baye Niang’s penalty. Photograph: Angelo Carconi/EPA

An injury to Bruno Peres just before the interval nudged Spalletti into an attacking shift as he brought on Stephan El Shaarawy to replace the wing-back. But there was no sense of inevitability to the goal with which Roma eventually broke the deadlock.

Nainggolan brought down a team-mate’s headed clearance beautifully in the 62nd minute before surging away from Locatelli and curling a shot beyond Donnarumma from the edge of the D. It was a goal out of nowhere – an isolated piece of brilliance to punish a rare moment of inattention from the Milan defence. It was enough to settle this game.

On balance, Roma had played better – and certainly once they had secured the lead they gave no sign of allowing Milan back into the game. They could draw encouragement, also, from their resilience. For the second match in succession, they had taken three points off a key rival, despite not performing to their full potential.

Whether or not that is enough to make them title contenders is another question. Roma’s home form, certainly, looks imposing – they have won 11 straight at the Stadio Olimpico dating back to last season – but on Saturday they must take on Juventus in Turin.

After all the hype of the last week, Tuesday’s papers seemed rather more subdued. Although some lauded Roma as a threat to the Old Lady’s crown, others were circumspect. Gazzetta dello Sport may have captured the moment best with a headline that asked: “Does an anti-Juve really exist?”