Johnson strong again, Cardinals beat Marlins 3-1