Multi-hop broadcast is a key technique to disseminate important information such as time-sensitive safety warning messages (WMs) in Vehicular Ad hoc Networks (VANETs). Due to the fact that the implementation of broadcast at the link layer uses unreliable transmissions (i.e., lack of positive ACKs), highly reliable, scalable, and fast multi-hop broadcast protocol is particularly difficult to design in VANETs with unreliable links. Schemes that use redundant network layer broadcasts have been proposed. However, the balance between receiving reliability and transmission count in such schemes needs to be carefully considered. In this paper, we propose the opportunistic broadcast protocol (OppCast) that aims at minimizing the number of transmissions while achieving high network packet reception ratio (PRR) and fast multi-hop message propagation simultaneously. A double-phase broadcast strategy is proposed to achieve fast message propagation in one phase and to ensure high PRR in the other. The idea of opportunistic forwarding is exploited at each hop to minimize the propagation latency. An opportunistic forwarding protocol is designed accordingly as a MAC-layer broadcast coordination function, that allows multiple nodes to agree on the actual relay nodes in a distributed fashion. The proposed function also alleviates the hidden terminal problem. Theoretical analysis is carried out to optimize and design both broadcast phases. Extensive simulation results show that, compared with existing competing protocols, OppCast achieves close to 100% PRR and fast dissemination rate under a wide range of vehicle densities, while using significantly smaller number of transmissions.