The cargo ship MV Thaison 4 and the KM Mulya Sejati, which was carrying 27 people, collided before dawn Saturday off Tuban district, said the head of the local Disaster Mitigation Agency, Joko Loediyono.
Media reports quoted witnesses as saying the Indonesian boat capsized after being hit from behind by the freighter, which is now being moored in Lamongan town for investigation.
The freighter, loaded with tapioca flour, was reportedly heading to Tanjung Perak seaport in East Java's capital of Surabaya.
A search for the missing has been underway with the help of the navy, which deployed two warships, Loediyono said.
Sea accidents are common in Indonesia, where boats are a popular and relatively cheap form of transportation in the world's largest archipelago nation, which spans more than 17,000 islands with a population of 256 million.