"The people of Gujarat will celebrate Diwali twice this year. Once in November, and then once again on Dec 20, when the BJP wins the election," Modi told a rally of the Bharatiya Janata Party's youth wing.
He attacked the opposition Congress, accusing them of "spreading lies" about him and alleging that the party was "wasting our hard-earned money".
"But all this is not going to work. Even today, five years after the last polls, the people of Gujarat still love the BJP," said Modi.
He also again attacked the prime minister. "Manmohan Singh has completed eight years in power. And till today, he does not have the courage to see us eye-to-eye."
He appealed to the youth BJP workers to spread out into the state's villages and tell people that the party was with them.
"Tell the people of Gujarat's villages that their development is our duty and that we are doing it.
"We have done, learnt and achieved a lot in these 10 years. And we will continue to do so after we come to power again," Modi said.
Gujarat goes to the polls Dec 13 and 17. Vote counting will be on Dec 20.
Photos: Kareena Kapoor Khan, Kangana Ranaut at the Mumbai airport
Photos: Virat Kohli-MS Dhoni's bromance, Team India in LOL mode
Bollywood celebs show you colours for Navratri 2017
Birthday special: Chris Gayle and his multiple records in cricket
In Pictures: 17 dreaded on-screen villains of Bollywood