I don't understand the "combining" part of your question, but this makes a contour plot:
ListContourPlot[Flatten /@ Flatten[Transpose[{Outer[List, x, y], mat}, {3, 2, 1}], 1]]1],
Epilog -> {Red, PointSize[Medium], Point /@ Outer[List, x, y]}]]
ContourPlot[
Interpolation[Flatten[Transpose[{Outer[List, x, y], mat}, {3, 2, 1}], 1]][u, v],
Evaluate@{u, Sequence @@ ({Min@#, Max@#} &[x])},
Evaluate@{v, Sequence @@ ({Min@#, Max@#} &[y])}]