"You are ruling a big country, we are managing a small state. There should be a debate on the issue of development and good governance between the government sitting in Delhi and our government," Modi said during an Independence Day function at Bhuj.
"Our shortcomings will come out. It will bring out who has been left behind. Today there is need for competition on development," said Modi.
In his address, Modi attacked Manmohan Singh for not taking the name of Lal Bahadur Shastri while referring to previous prime ministers Jawaharlal Nehru, Indira Gandhi and Rajiv Gandhi, and for not speaking out strongly against the killing of Indian soldiers by Pakistan.
He said former prime minister Lal Bahadur Shastri also belonged to the Congress but was ignored by Manmohan Singh.
Modi said the morale of the Indian military would have gone up if Manmohan Singh had used "the language the country expected" over the killing of five Indian soldiers in Jammu and Kashmir by Pakistani troops.
His remarks invited strong reaction from the Congress.
"Today is the day of our prime minister. As per traditions, the prime minister presents India's aspirations, thinking, belief and determination before the country and the world from the Red Fort. At least today, Modiji should have maintained some restraint," said External Affairs Minister Salman Khurshid.
Modi's party colleague and Bharatiya Janata Party (BJP) veteran L.K. Advani said the day should not be used to criticise each other.
"Today is Independence Day. Without criticising one another, people should be aware on this day that India has unlimited possibilities," Advani said after unfurling the national flag at his residence.
Modi, widely seen to be prime ministerial candidate of the BJP, also talked about border incursions by China and the beheading of an Indian soldier by Pakistan forces in January this year.
Referring to the president's remarks that India's "patience has limits", Modi said there should be limit to tolerance.
"What is the limit, the government in Delhi has to decide," he said.
While Modi attacked the prime minister, he praised Mukherjee, who expressed his concern over corruption in his address to the nation Wednesday evening.
"It would have been good if the prime minister today had said something on corruption," said Modi.
Claiming that "people were sick and tired of corruption", he said: "I listened to the president. I can understand his pain. I associate myself with the concerns of the president."
Modi said he asked the prime minister to call a meeting of chief ministers to remove shortcomings in the food security bill but that wasn't done.
Referring to the president's concerns about disruptions in parliament, Modi said it had happened for the first time that "members of the ruling party had not allowed ( parliament) to function".
He said the prime minister listed the same problems before the country that were mentioned when Nehru was the prime minister.
"What have you done in the last 60 years. The problems are the same," he said.
Modi also took a dig at the Congress over allegations of falsification of documents in a property deal against Robert Vadra, son-in-law of Congress president Sonia Gandhi.
"People used words of (Hindi) serials like 'bhai-bhatijawad' (favouring brother, nephew) to refer to corruption. Now the talk is 'saas, bahu, damaad' (mother-in-law, sister-in-law and son-in-law)," Modi said.
--IANS (Posted on 15-08-2013)