We simulate thrust generation, lateral forces, and vorticity patterns in the wake of a swimming deformable fish-like body having different fin configurations. The simulation code is validated by comparing hydrodynamic loads and velocity profiles with published experimental and numerical results. The hydrodynamic performance of undulatory body is based on evaluation of generated loads versus required kinematics to achieve thrust-based swimming. The results show significant dependence of the thrust generation and vorticity pattern of the wake on the Strouhal number. Analysis of lateral oscillations of the tail reveals the existence of an optimal lateral oscillation amplitude that produces positive thrust. Simulations with a flapping caudal fin show significant improvement in thrust generation and transition from drag-based to thrust-based swimming at lower Strouhal numbers. Furthermore, controlling the flapping frequency of the caudal fin yields further enhancement in the hydrodynamic performance. This enhancement is associated with the transition from the aligned arrangement of alternating vortices to a deflected wake producing a momentum surfeit in the near wake region. Simulations with rigid pectoral fins on the generation of hydrodynamic loads show that a reduction in thrust production. This degradation in the propulsive performance is associated with the flow separation on the fish body.