Solution
As described in the requirement, the solution starts with creating two elements and probably a wrapper to those.
<div class="wrapper">
<div class="first"></div>
<div class="second"></div>
</div>
Now, we style them to match the design.
.first,
.second {
width: 100px;
height: 100px;
background-color: red;
opacity: 0.6;
}
And the below lines of code for the overlap.
.second {
margin-left: 50px;
margin-top: -50px;
}
The problem with this approach is that the opacity will not be consistent on the overlapped region and it gets a darker shade.

Note that this is not a bug with the browsers and the reason for this behaviour is explained here.
The right approach
The better way to handle this situation is to avoid making the children elements transparent and instead set 'opacity' in the parent level. And while hover, toggle these opacity levels between the parent and children with JS.
$(".first, .second").hover(function() {
$(".wrapper, .first, .second").not(this).toggleClass("add-opacity");
});
Also, the hover on overlapped region would cause flickering due to change in stack order, which can be handled by setting z-index
to the hovered element.
.first:hover,
.second:hover {
z-index: 1;
}
CODEPEN
Hope this helps.