Contamination in the water distribution network poses a serious threat to this critical infrastructure. Detecting contamination sources promptly and accurately, so that remedial action can be taken, is highly desirable. Traditional methods mainly address the source detection problem by brute-force forward simulations, followed by applying statistical or optimization techniques to massive simulation results. Backtracking water parcels from downstream to upstream is more efficient, but it fails in the face of random water demand because tracking requires deterministic hydraulic conditions. To solve this problem, we propose a Bayesian framework that integrates a physical model of forward and backward tracking of contaminant movement into a statistical model to update the probability of contamination events that report the location and time. In the framework, we first impute an ensemble of realizations of water demand. In each demand realization, contaminants are backtracked, and a collection of contamination events is identified. Then, every contamination event is simulated to obtain artificial sensor data. By comparing simulated and incoming field sensor data, the probability of each contamination event is iteratively updated, with high updated probability implying strong suspicion. The efficiency and effectiveness of the framework are demonstrated using a well-studied network and compared with existing methods.