They are “winning” becuase we're not fighting a serious war. Same with the “war” on terror.
We have the means to eradicate the cartels, terrorists, and terror groups in a relatively short amount of time. Unfortunately we don't have the will to do what it takes to win.
It's Mexico's problem. Let Mexico deal with it.
If we want a war, I'm sure the cartels will give us one. Do we want nightclub bombings in San Diego? College students beheaded in El Paso? For all the violence that goes on in Mexico, the cartels have been largely successful at keeping it on their side of the border. That'll change the moment we stick our noses into it.