Due to limited water resources and the increasing demand for agricultural products, it is significantly important to operate surface water reservoirs optimally, especially those located in arid and semi-arid regions. This paper investigates uncertainty-based optimal operation of a multi-purpose water reservoir system by using four optimization models. The models include dynamic programming (DP), stochastic DP (SDP) with inflow classification (SDP/Class), SDP with inflow scenarios (SDP/Scenario), and sampling SDP (SSDP) with historical scenarios (SSDP/Hist). The performance of the models was tested in Zayandeh-Rud Reservoir system in Iran by evaluating how their release policies perform in a simulation phase. While the SDP approaches were better than the DP approach, the SSDP/Hist model outperformed the other SDP models. We also assessed the effect of ensemble streamflow predictions (ESPs) that were generated by artificial neural networks on the performance of SSDP/Hist. Application of the models to the Zayandeh-Rud case study demonstrated that SSDP in combination with ESPs and the K-means technique, which was used to cluster a large number of ESPs, could be a promising approach for real-time reservoir operation.