This paper presents the design, modeling, and control of a three-joint robotic fish propelled by a double-slider-crank (DSC) driven caudal fin. DSC is a mechanism that can use one direct current motor to achieve oscillating foil propulsion. Its design is guided by a traveling wave equation that mimics a fish's undulatory locomotion. After multiple tests, the robotic fish displayed good performance in mimicking a real fish's swimming motion. DSC mechanism is proven to be an effective propulsion technique for a robotic fish. With the help of another servomotor at the first joint of the fish's tail, the robotic fish can have a two-dimensional free-swimming capability. In experiments, the robotic fish can achieve a swimming speed of 0.35 m/s at 3 Hz, equivalent to 0.98 body length (BL) per second. Its steering rate is proportional to a bias angle. The DSC benefits the control of the robotic fish by independently adjusting its steering and swimming speed. This characteristic is studied in a hydrodynamic model that derives the thrust within a DSC frame. Besides the dynamic model, a semiphysics-based and data-driven linear model is established to connect bias angle to robotic fish's heading angle. The linear model is used for designing an observed-state feedback control control, and the controller has been examined in simulation and experiments.