Using uistack
changes the ordering in the legend as well. If you prefer not, then one way is to artificially give the curve that needs to be drawn on top some positive ZData as well (using set(handle, 'ZData', ones(size(get(handle,'XData'))))
for example).