People overpowered the gunman outside the cafe in the port of Rotterdam, wrestling him to the ground and holding him until police arrived, a spokesman said.
He said the motive for the shooting was unclear, but it may have begun with a quarrel in the cafe, where a talent contest was under way and there was loud music.
One person was wounded inside and three people were hit on the street, one fatally, the spokesman said.
The incident happened just before 1 a.m. The square outside was unusually busy because of the warm spring weather.
Police said the man was a 46-year-old Rotterdam resident but gave no further details. The victims also were not immediately identified.