The shooting came amid a recent wave of Palestinian attacks on Israelis.
Medics said they had taken nine people to hospitals in Tel Aviv, with police saying two of them had been pronounced dead.
"Police units searching Tel Aviv area for suspect who carried out shooting. All injured taken to Tel Aviv hospitals," police spokesman Micky Rosenfeld wrote on Twitter.
An AFP reporter said patrons at the pub and cafe had been targeted, and that the sidewalk was strewn with chairs and broken glass as police forensic officers examined the scene.
Also Read
Hundreds of police were scouring the area, entering buildings in the vicinity and northward, where the assailant was believed to have fled, and police helicopters buzzed overhead.
Haim Pinto was closing his jewelry store near the pub when the shooting began.
"People started running in my direction, yelling 'terrorist, terrorist'. I saw the commotion and went right back into my store, another girl came in and we hid in the bathroom till the shooting ended," he told AFP.
He also told AFP that, judging by the sound of the shots, the assailant had fired single rounds rather than in automatic bursts.
Osnat David, who owns a hair salon near the pub, said she was outside smoking a cigarette just two minutes before the attack began.
"If I were there when it happened I would have been dead," she told AFP, recounting how she hid in her salon's storage room with a few customers, clutching a pair of scissors and waiting for the shooting to end.
French tourist Alexandre Lambez was at a cafe across the street from the one targeted after the pub.
"I immediately thought of the attacks in Paris," he said, referring to jihadist attacks in November that killed 130 people at bars, a concert hall and the Stade de France stadium.
Twenty Israelis, an American and an Eritrean have been killed in a wave of Palestinian attacks since October 1 including stabbings, car-rammings and gun fire targeting security forces and civilians.