For such task there are Mesh > Faces > Intersect (Boolean) and Intersect (Knife) tools in Edit Mode, but for your example they are not working as supposed to. Also with two separated shapes from your example Boolean Modifier (Union) isn't working as well. I can't say why, as I'm not using Booleans at all.
As a workaround you can make it using Knife Project tool.
Select one of your shape/face in Edit Mode then use P > Selection.
In Object Mode, select one object, then with Shift select second one and go to Edit Mode.
In the Tool Shelf choose Knife Project.
Repeat steps 2 and 3 but now select objects in different order.
Join both objects Ctrl+J.
In Edit Mode select all then W > Remove Doubles and use X > Limited Dissolve.
Note: Consider using quad topology as this will save you some problems
later on. Working with ngons could be problematic.