Rahul Gandhi’s speech came as an enormous morale booster for party cadres, even as it took the wind out of Narendra Modi’s sails — if only temporarily.

On Friday night, Prime Minister Narendra Modi proved he still had the numbers in the Lok Sabha. But, it was the Congress’s rookie President, Rahul Gandhi who stole the show. He set the tone — if not the agenda — for 2019, with an unequivocal message that love and tolerance, not hatred and lynchings, was the way forward for India, indeed, that there was no substitute for the Gandhian ideals of truth and non-violence.

Minutes before he walked across to Mr. Modi, he said, “You may hate me, you may be angry at me; you may even call me pappu. You can hurl abuses at me but I do not have any anger or hate for you. I am Congress, and all of them (the Opposition) are the Congress. This feeling and the Congress have built this nation. And you should never forget that.”

For Mr. Gandhi, not the most articulate and effective speaker, it was an enormous achievement, and the platform provided by the Opposition-backed no-confidence motion was perfect. Television viewers across the country were able to see for themselves that even eight hours after Mr. Gandhi ambushed Prime Minister Narendra Modi with a warm — and completely unexpected — hug on the floor of Parliament, he had not quite recovered from what the Shiv Sena’s Sanjay Raut described as a “jhatka” (shock), not a “jhappi” [hug].

Replying to the no-confidence motion against his government, Mr. Modi failed to deliver the speech that was intended to place the Bharatiya Janata Party (BJP)’s agenda front and centre for general elections barely a year away.

Instead, clearly angry, visibly distracted, his close to two hour long diatribe was partly devoted to mocking Mr. Gandhi’s prime ministerial ambitions — describing his hug as an effort to grab the Prime Minister’s chair without winning an election — and the rest to by now tired statistics related to his government’s achievements.

What made it worse for Mr. Modi was that much of his speech had to be delivered through the steady tempo of the slogan, “We want justice, we want justice” that was being chanted by MPs of the Telugu Desam Party (TDP) — the first sponsor of the no-confidence motion — which was demanding special category status for Andhra Pradesh.

An impressive orator otherwise, Mr. Modi looked dispirited on Friday night, his speech dull, repetitive and uninspiring, reflected on the faces of his BJP colleagues, who sat unsmiling, thumping their desks mechanically, from time to time. And when the motion was defeated, ruling party MPs simply got up and walked out: there was no cheering, just relief that the day-long debate was over.

Mr. Gandhi’s speech frontally attacked the Prime Minister on a variety of issues — from the latter’s patronage of top industrial houses at the cost of small businessmen, farmers and workers, to questioning why the price of the Rafale trebled (a query that neither the government responded to, nor the French government clarified), to the allegations of corruption against BJP President Amit Shah and his son, Jay Shah, to the fact that though “some Indian is being murdered, beaten up or oppressed ( almost all the time), the Prime Minister does not say a word.”

He also hinted that Mr. Modi and Mr. Shah had a great deal to hide: “For reasons that everybody knows here, the Prime Minister and the president of the BJP can simply not afford to lose power. Because the moment they lose power, other processes will start against them.”

And then there was the use of the phrase “jumla strike,” a “21st-century political weapon,” a reference to the long list of unfulfilled promises made by the Modi government and its penchant for propaganda.

Of course, Mr. Gandhi’s speech could have been more substantive, given the occasion. But he more than made up for this shortcoming by sheer confidence, spontaneity and the message that he delivered just before he bestowed the knock-out hug — on what differentiated the Congress from the BJP-RSS combine.

Most importantly, it came as an enormous morale booster for party cadres, even as it took the wind out of Mr. Modi’s sails — if only temporarily.

But this is not the first time that Mr. Gandhi has got under Mr. Modi’s skin: on April 20, 2015, in a discussion on the agrarian situation in the Lok Sabha, he had torn into the Prime Minister, calling his government a “suit-boot ki sarkar” (a reference to the ostentatious monogrammed suit that Mr. Modi had worn for U.S. President Barack Obama’s visit to the country in January of that year), promoting the interests of the rich at the expense of the poor.

Most saw it as just a jibe, but as the months that followed demonstrated, Mr. Modi took it to heart — and consciously sought to change the image of his government as one representing the poor.

For the moment, Mr. Gandhi has won a verbal duel and caught the attention of the nation, but the closing months of the 16th Lok Sabha will demonstrate whether he can take the message he delivered on the floor of Parliament to the people. As for Mr. Modi, there is no doubt, that though he may have had a setback on Friday, he will live to fight another day.