It happened in Bnei Brak, one of the country’s most populous ultra-Orthodox Jewish areas.
The gunman was shot dead by police, a paramedic at the scene said.
Israel security forces were on high alert after attacks by Israeli Arabs last Tuesday and Sunday, which left six people dead.
Residents in Bnei Brak and the neighbouring town of Ramat Gan reported that a man had driven around and opened fire at passers-by on Tuesday.
Footage from the scene showed the gunman in dark clothing raising his automatic weapon and firing through the passenger window at point-blank range.
One person was found dead in a vehicle and others on surrounding streets, the Jerusalem Post reported.
Israeli Prime Minister Naftali Bennett held an emergency security meeting and his security cabinet will convene on Wednesday.
“Israel is facing a wave of murderous Arab terrorism,” he said. “The security forces are operating. We will fight terror with perseverance, stubbornness and an iron fist.”
Former prime minister and current opposition leader Benjamin Netanyahu said that Israel was “in the midst of a dangerous wave of terrorism that we have not seen for many years… Determined action must be taken to restore peace and security to the citizens of Israel”.
US Secretary of State Antony Blinken condemned the attack.
“This violence is unacceptable,” he said. “Israelis – like all people around the world – should be able to live in peace and without fear.”
Israeli media reports say the attacker was a 27-year-old Palestinian from a village in the north of the occupied West Bank.
Palestinian President Mahmoud Abbas condemned the killings of the Israelis, the official Palestinian Wafa news agency said.
However, the Palestinian militant group Hamas, which governs Gaza, praised the attack, saying: “We express our blessing to the Tel Aviv operation.”
Security had already been stepped up across Israel and in the West Bank in the wake of the two previous attacks.
The first was carried out by an Israeli Arab who had planned to join the Islamic State (IS) group in Syria and had served a jail sentence for security crimes. The attacker drove his car into a cyclist, killing him, then stabbed three people to death outside a shopping centre in the southern city of Beersheba.
Five days later, two other Israeli Arabs opened fire at a bus stop in the northern city of Hadera, killing two 19-year-old police officers. IS said it was behind that attack. All three assailants were shot dead.
There had been fears of further incidents in the month ahead, when the Muslim festival of Ramadan, the Jewish festival of Passover and the Christian festival of Easter coincide in a rare convergence.