Mr Bhalla was endorsed by current Mayor Dawn Zimmer, who in a surprising decision announced not to run for re-election in June.
He is the first Sikh to hold elected office in New Jersey.
Mr Bhalla, who has been on the city council for more than seven years, claimed the victory at Moran's Pub on Garden Street yesterday with dozens of his supporters, as well as his friends and family, NJ.com reported.
"Thank you Hoboken. I look forward to being your Mayor!," Mr Bhalla tweeted.
"Thank you for having faith in me, for having faith in our community, faith in our state, and faith in our country; this is what America is all about," he told his supporters after winning the elections.
"We've been through a bruising campaign... but now is the time we come together and see who we can work with to bring this city forward," he said.
He bested a six-person field of challengers that included council members Michael DeFusco and Jennifer Giattino, as well as Hudson County Freeholder Anthony Romano, the report said.
The race turned ugly in recent days when doctored campaign fliers began circulating anonymously attacking Mr Bhalla.
Last week, Mr Bhalla was labelled a terrorist in slanderous flyers left on car windshields.
Yesterday, a flyer w/ word "terrorist" above a pic of me was circulated in Hob. Of course this is troubling, but we won't let hate win. pic.twitter.com/Ri9xrYF4Al- Ravinder S. Bhalla (@RaviBhalla) November 4, 2017
They have a photo of New Jersey Councilman Bhalla. In red letters above him, the flyers read: "Don't let terrorism take over our Town!", it added.
The recent flyers were not the first time he had been referred to as a "terrorist". A Jersey City man previously tweeted: "how the hell did Hoboken allow this guy to be a councilman. He shouldn't even be allowed in the US #terrorist."
Mr Bhalla tweeted about the flyers. They read "Don't let TERRORISM take over our Town!".
Get the latest election news, live updates and election schedule for Lok Sabha Elections 2019 on ndtv.com/elections. Like us on Facebook or follow us on Twitter and Instagram for updates from each of the 543 parliamentary seats for the 2019 Indian general elections. Election results will be out on May 23.